我正在使用滚动文件接收器。
以下是我的初始化代码:
Serilog.Log.Logger = new LoggerConfiguration()
.WriteTo.RollingFile(@"L:\logs\Api-{Date}.txt", fileSizeLimitBytes: null)
.CreateLogger();
以下是记录行:
Log.Information(message);
但是在2 KB之后,它会创建一个新文件。
我不知道出了什么问题。
更新
这是我的记录器类:
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 :(得分:1)
代码正在为每个事件创建一个新的记录器实例。您需要创建一个单个记录器并将其用于每个日志记录调用。
有关Serilog记录器in the documentation生命周期的更多信息。