问题描述:记得以前使用Log4net时,可以在config文件中配置多个Appender,
每一个类对应一个Appender,即每个类产生的日志会写入到不同的日志文件中,
可避免日志堆累在一起。
目前环境有所变化,使用的是ABP框架,日志使用的类为Microsoft.Extensions.Logging.ILogger
首先我定义了两个Appender, 其目的就是不同的类日志写入到不同的Appender所定义的日志文件中去
<?xml version="1.0" encoding="utf-8"?>
<log4net>
<appender name="DataSyncServices" type="log4net.Appender.RollingFileAppender">
<file value="../../../App_Data/Logs/日志文件1.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10000KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" />
</layout>
</appender>
<appender name="DataSyncTwoServices" type="log4net.Appender.RollingFileAppender">
<file value="../../../App_Data/Logs/日志文件2.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10000KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" />
</layout>
</appender>-->
<root>
<appender-ref ref="DataSyncServices" />
<appender-ref ref="DataSyncTwoServices" />
<level value="DEBUG" />
</root>
<logger name="NHibernate">
<level value="WARN" />
</logger>
</log4net>
代码内容如下
private readonly ILogger<DataSyncServices> _logger;
public class DataSyncServices : AMSApiServiceBase, IDataSyncServices
{
public DataSyncServices(ILogger<DataSyncServices> logger,。。。。)
{
_logger = logger; //这里是大家都知道的,应用了依赖注入去实例化日志类
}
private void Method()
{
....
/*
这里输出至日志文件
奇怪的是,日志内容会同时写入到日志文件1.txt 和 日志文件2.txt两个文件中,与目的可谓是南辕北辙
*/
_logger.LogInformation("写入DataSyncServices类产生的日志");
}
}
private readonly ILogger<DataSyncTwoServices> _logger;
public class DataSyncTwoServices : AMSApiServiceBase, IDataSyncTwoServices
{
public DataSyncTwoServices(ILogger<DataSyncTwoServices> logger,。。。。)
{
_logger = logger; //这里是大家都知道的,应用了依赖注入去实例化日志类
}
private void Method()
{
....
/*
这里输出至日志文件
奇怪的是,日志内容会同时写入到日志文件1.txt 和 日志文件2.txt两个文件中,与目的可谓是南辕北辙
*/
_logger.LogInformation("写入DataSyncTwoServices类产生的日志");
}
}
提出问题:我的目的是将不同的类产生的日志输入到不同的文件中去,但是按照上面的做法,
结果相反,一个类的日志内容似乎会往两个日志文件中写入。
对于.net core6的Microsoft.Extensions.Logging.ILogger使用,怎样才能实现不同的类产生的日志
输入到不同的文件中去? 有什么好的建议或代码片断可供参考吗?
期待得到各位的指点,感谢!