不通过 Host 将 Serilog 转换成 ILogger

安装 Serilog

public static class LoggerExtension
{
    public static ILogger<T> CreateLogger<T>()
    {
        var logPath = "log.txt";
        const string outputTemplate = "[{Timestamp:yyyy-MM-dd HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}";
        Logger logger = new LoggerConfiguration()
            .WriteTo.File(logPath, outputTemplate: outputTemplate, rollingInterval: RollingInterval.Day, shared: true, rollOnFileSizeLimit: true)
            .CreateLogger();
        
        SerilogLoggerProvider serilogLoggerProvider = new SerilogLoggerProvider(logger);
        ILoggerFactory loggerFactory = App.Services.GetRequiredService<ILoggerFactory>();
        
        loggerFactory.AddProvider(serilogLoggerProvider);
        return loggerFactory.CreateLogger<T>();
    }
}
posted @ 2024-03-18 23:23  灵火  阅读(16)  评论(0编辑  收藏  举报