Maui使用Serilog

Maui使用Serilog

  1. 在builder中添加

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    
    var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
            })
            .Logging.AddSerilog(Log.Logger);
    
            //注意将模板中的代码禁掉
            //#if DEBUG
        	//builder.Logging.AddDebug();            
        	//#endif
    
  2. 在其他任意位置实例化Log.Logger

    1
    2
    3
    4
    5
    6
    
    Log.Logger = new LoggerConfiguration()
            //.MinimumLevel.Debug()
            .WriteTo.File(path)
            .WriteTo.AppCenterCrashes(restrictedToMinimumLevel: LogEventLevel.Information)
            .WriteTo.Console()
            .CreateLogger();
    

    从配置文件

    1
    2
    3
    
    Log.Logger = new LoggerConfiguration()
            .ReadFrom.Configuration(configuration)
            .CreateLogger();
    
    1
    2
    3
    
    // 兼容跨平台
    var options = new ConfigurationReaderOptions(typeof(MauiProgram).Assembly, typeof(SerilogExpression).Assembly);
    services.AddSerilog(config => { new LoggerConfiguration().ReadFrom.Configuration(configuration, options); });
    
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    
    #if ANDROID
                    var logDirectory = Android.App.Application.Context.GetExternalFilesDir(null);
                    if (logDirectory != null)
                    {
                        var logger = new LoggerConfiguration()
                        .WriteTo.File(Path.Combine(logDirectory.AbsolutePath, "log.txt"), Serilog.Events.LogEventLevel.Verbose, rollingInterval: RollingInterval.Day)
                        .CreateLogger();
                        services.AddSerilog(logger);
                    }
    #else
                    services.AddSerilog(new LoggerConfiguration().ReadFrom.Configuration(configuration).CreateLogger());
    #endif
    
Licensed under CC BY-NC-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy