我的项目是 C#(Windows 窗体).net3.5
在我的代码中有多个事件,并且在每个事件中都运行多个搜索。
我必须为每个事件创建日志文件,并且多个搜索可以访问和写入这个单个日志文件。
问题是我不知道如何使用 log4net 创建多个具有动态(在运行时设置)名称的日志。
如何设置位置(路径)
我浏览了有关我的问题的互联网,但没有找到任何解决此类问题的帮助。
任何想法请
log4net
通常用于具有多个源和附加器。要生成已定义的源,请要求 LogManager 有一个命名日志,通常我们使用类型来标识日志,但如果需要,可以随意使用字符串:
var myLog = LogManager.GetLogger("NAME");
....
var myLog = LogManager.GetLogger(GetType());
在第一种情况下,记录器由 标识"NAME"
,在第二种情况下,由带有命名空间的类型名称标识。然后,您可以为所有日志、它们的子集、过滤器等配置附加程序。让我们看一个例子:
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="MYFILE" type="log4net.Appender.RollingFileAppender">
<file value=".\logs\myname.log"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="10MB"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level (%thread) %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="INFO"/>
<!-- all logger append to these appenders />
<appender-ref ref="xxxxxx"/>
</root>
<logger name="NAME">
<level value="INFO"/>
<appender-ref ref="MYFILE"/>
</logger>
<!-- add other appender here -->
不要忘记在您的应用程序开始时调用XmlConfigurator.Configure();