|
|
|
@ -1,4 +1,7 @@ |
|
|
|
using Avalonia.Controls; |
|
|
|
#define TRACE
|
|
|
|
using System; |
|
|
|
using System.Diagnostics; |
|
|
|
using System.IO; |
|
|
|
using Avalonia.Logging; |
|
|
|
|
|
|
|
namespace Avalonia |
|
|
|
@ -12,12 +15,39 @@ namespace Avalonia |
|
|
|
/// <param name="level">The minimum level to log.</param>
|
|
|
|
/// <param name="areas">The areas to log. Valid values are listed in <see cref="LogArea"/>.</param>
|
|
|
|
/// <returns>The app builder instance.</returns>
|
|
|
|
public static AppBuilder LogToTrace( |
|
|
|
public static AppBuilder LogToTrace(this AppBuilder builder, |
|
|
|
LogEventLevel level = LogEventLevel.Warning, params string[] areas) => |
|
|
|
LogToDelegate(builder, s => Trace.WriteLine(s), level, areas); |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Logs Avalonia events to a TextWriter
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="builder">The app builder instance.</param>
|
|
|
|
/// <param name="writer">The TextWriter that's used for log events.</param>
|
|
|
|
/// <param name="level">The minimum level to log.</param>
|
|
|
|
/// <param name="areas">The areas to log. Valid values are listed in <see cref="LogArea"/>.</param>
|
|
|
|
/// <returns>The app builder instance.</returns>
|
|
|
|
public static AppBuilder LogToTextWriter(this AppBuilder builder, TextWriter writer, |
|
|
|
LogEventLevel level = LogEventLevel.Warning, params string[] areas) => |
|
|
|
LogToDelegate(builder, TextWriter.Synchronized(writer).WriteLine, level, areas); |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Logs Avalonia events to a custom delegate
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="builder">The app builder instance.</param>
|
|
|
|
/// <param name="logCallback">The callback that's used for log events.</param>
|
|
|
|
/// <param name="level">The minimum level to log.</param>
|
|
|
|
/// <param name="areas">The areas to log. Valid values are listed in <see cref="LogArea"/>.</param>
|
|
|
|
/// <returns>The app builder instance.</returns>
|
|
|
|
public static AppBuilder LogToDelegate( |
|
|
|
this AppBuilder builder, |
|
|
|
Action<string> logCallback, |
|
|
|
LogEventLevel level = LogEventLevel.Warning, |
|
|
|
params string[] areas) |
|
|
|
{ |
|
|
|
Logger.Sink = new TraceLogSink(level, areas); |
|
|
|
Logger.Sink = new StringLogSink(logCallback, level, areas); |
|
|
|
return builder; |
|
|
|
} |
|
|
|
} |
|
|
|
|