我有一个Logger.cs类:
public Logger(string logtype=null)
{
_logtype = logtype;
LogEventLevel level = LogEventLevel.Warning;
if (File.Exists(configPath))
{
XDocument xdoc = XDocument.Load(configPath);
string val = xdoc.Descendants("logEnabled").First().Value;
// if(clientConfig.LogEnabled == true)
if (val == "true")
{
level = LogEventLevel.Debug;
}
else if (val == "false")
{
level = LogEventLevel.Warning;
}
}
else
{
level = LogEventLevel.Warning;
}
_logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.File(_filepath, level)
.CreateLogger();
}
此记录器类在解决方案中的多个项目中使用。如下图所示:
Class A {
Logger _logger = new Logger("A");
}
Class A1 {
Logger _logger = new Logger("A");
}
Class B {
Logger _logger = new Logger("B");
}
Class B1 {
Logger _logger = new Logger("A");
}
使用上面的代码。现在,我只能看到第一个日志记录被写入日志文件。 A类和A1类使用相同的日志文件“ A”,当我的程序执行时,我只能看到A类日志记录出现在日志中,而A1类日志记录消息却没有。 与B级和B1级相同,只有B级消息可见。
在解决方案中如何在多个项目中使用相同的日志文件?
答案 0 :(得分:1)
您将需要启用多进程共享日志文件,将shared
设置为true
_logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.File(_filepath, level, shared: true)
.CreateLogger();
有关更多信息,请检查Shared log files