【问题标题】:Serilog.Exceptions Rolling FilesSerilog.Exceptions 滚动文件
【发布时间】:2017-06-02 20:36:15
【问题描述】:

当记录新的异常时,会创建一个新文件。

场景: 创建的第一个文件:
log-20170602

根据异常创建的文件:
log-20170602_001
日志-20170602_002
日志 20170602_003

我的代码(C# - Visual Studio 2015 项目):

public class EventLogging
    {
        private readonly Logger _logger;


        public EventLogging(IOptions<LoggingOptions> logOption)
        {
            var logAccessor = logOption.Value;

            _logger = new LoggerConfiguration()
                .Enrich.WithExceptionDetails()
                .WriteTo.Sink(new RollingFileSink(logAccessor.Path,
                    new JsonFormatter(renderMessage: true), null, null)).CreateLogger();
        }

        public void LogError(string message, Exception exception)
        {
            _logger.Error(exception, message);
        }

        public void LogWarning(string message, Exception exception)
        {
            _logger.Warning(exception, message);
        }
    }

引用该类以避免在每个类中编写以下代码:

_logger = new LoggerConfiguration()
                .Enrich.WithExceptionDetails()
                .WriteTo.Sink(new RollingFileSink(logAccessor.Path,
                    new JsonFormatter(renderMessage: true), null, null)).CreateLogger();

有没有办法防止在每个例外但每个新日期创建文件?

【问题讨论】:

    标签: c# exception visual-studio-2015 serilog


    【解决方案1】:

    您是否在每次记录某些内容时都创建一个新的记录器?通常使用 Serilog 我初始化单例 Log 实例一次并在任何地方使用它:

    启动时:

    Serilog.Log.Logger = new LoggerConfiguration()
        .Enrich.WithExceptionDetails()
        .WriteTo.Sink(new RollingFileSink(logAccessor.Path,
        new JsonFormatter(renderMessage: true), null, null)).CreateLogger();
    

    稍后:

    Serilog.Log.Error(exception, message);
    

    在您的情况下,我认为如果您只保留 _logger 的静态实例而不是一遍又一遍地重新创建一个新实例,它将解决您的问题。或者,如果您只保留相同的 RollingFileSink 并重复使用它,您可以使用不同的记录器。

    【讨论】:

    • 在我注意到我每次都在创建一个新实例之后,我意识到了这种方法。谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-11-13
    • 2012-01-28
    • 1970-01-01
    • 2013-06-18
    • 2011-08-19
    • 1970-01-01
    • 2018-01-27
    • 2013-05-02
    相关资源
    最近更新 更多