2016-09-29 6 views
1

Я использую скользящий файл.Serilog создает новый файл после 2 KB

Ниже мой код инициализации:

Serilog.Log.Logger = new LoggerConfiguration() 
      .WriteTo.RollingFile(@"L:\logs\Api-{Date}.txt", fileSizeLimitBytes: null) 
      .CreateLogger(); 

Вот строка для входа:

Log.Information(message); 

Но после того, как 2 КБ, он создает новый файл.

Я не знаю, что происходит.

Update

Это мой регистратор класс:

public class Logger 
{ 
    public Logger() 
    { 
     Serilog.Log.Logger = new LoggerConfiguration() 
      .MinimumLevel.Verbose() 
      .WriteTo.RollingFile(@"L:\logs\Api-{Date}.txt", fileSizeLimitBytes: null) 
      .CreateLogger(); 
    } 

    public void Log(LogRequestParameters logRequestParameters, LoggingLevels loggingLevel) 
    { 
     var message = JsonConvert.SerializeObject(logRequestParameters); 

     switch (loggingLevel) 
     { 
      case LoggingLevels.Verbose: 
       Serilog.Log.Verbose(message); 
       break; 

      case LoggingLevels.Debug: 
       Serilog.Log.Debug(message); 
       break; 

      case LoggingLevels.Information: 
       Serilog.Log.Information(message); 
       break; 

      case LoggingLevels.Warning: 
       Serilog.Log.Warning(message); 
       break; 

      case LoggingLevels.Error: 
       Serilog.Log.Warning(message); 
       break; 

      case LoggingLevels.Fatal: 
       Serilog.Log.Fatal(message); 
       break; 
     } 
    } 
} 

Это мой класс вызывающего абонента:

public class Caller 
{ 
    logRequestParameters.DateTime = DateTime.Now.ToString(); 
    logRequestParameters.Level = "Debug"; 
    logRequestParameters.MachineName = Environment.MachineName; 
    logRequestParameters.Type = "Request"; 
    logRequestParameters.Request = request; 

    Logger logger = new Logger(); 

    logger.Log(logRequestParameters, LoggingLevels.Information); 
} 
+0

Я взял ваш код выше и назвал 'Log.Information (новый String ('x', 1024))' 5 раз и создал один 5K-файл. Можете ли вы предоставить более подробную информацию о своем приложении и том, как вы регистрируетесь? Код, который вы показали, не разбивает файл после 2k (используя Serilog 2.2.1). – PatrickSteele

ответ

1

код создает новый экземпляр регистратора для каждого события. Вам необходимо создать регистратор и использовать его для каждого вызова регистрации.

Существует дополнительная информация о жизненном цикле регистраторов Serilog in the documentation.

+0

Спасибо! Но как я могу создать один регистратор и использовать его во всем приложении. В моем текущем приложении я создал класс журнала. Я хочу использовать это в другом месте. Кроме того, я хочу создать один конструктор, который будет принимать путь к файлу и минимальный уровень в качестве входных данных. Так что для разных целей я могу входить в различные файлы. – user1780538

Смежные вопросы