QA.NET 1.0Visual Studio .NET 2003WebForms.NET 1.1.NET 3.0Visual Studio 2005.NET 2.0C# 2.0C# 3.0中级开发Visual StudioWindows.NETASP.NETC#
从一个应用程序中使用多个 log4net 输出
通过使用本文,您可以轻松地从 log4net 配置多个输出日志文件
引言
本文只是演示如何根据库或应用程序使用多个输出日志文件。
Using the Code
开发类库的开发人员可能需要将详细信息与主应用程序分开记录,以支持用户或快速检索数据。 但是,当他们尝试实现这一点时,他们会遇到一个问题。 这是因为通常 log4net 在 ASP.NET *web.config* 文件或 Windows 应用程序 *app.config* 文件下只有一个 config 部分。 要克服此问题,您可以使用定义输出的不同记录器条目。
默认情况
<log4net>
<appender type="log4net.Appender.RollingFileAppender" name="RollingFile">
<file value="c:\\logs\\Log.txt" />
<layout type="log4net.Layout.PatternLayout" />
<conversionpattern value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingFile" />
</root>
</log4net>
当您指定 <root />
标签时,它表示所有日志数据都将记录到该输出文件。 要停止此操作,我们需要删除 <root />
元素,并为每个库或应用程序使用单独的 <logger />
标签。 您还需要为库指定您的 root namespace
。
<log4net>
<appender type="log4net.Appender.RollingFileAppender" name="classApp1">
<file value="c:\\Library1.txt" />
<layout type="log4net.Layout.PatternLayout">
<conversionpattern value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender type="log4net.Appender.RollingFileAppender" name="classApp2">
<file value="c:\\Library2.txt" />
<layout type="log4net.Layout.PatternLayout">
<conversionpattern value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender type="log4net.Appender.RollingFileAppender" name="application">
<file value="c:\\Application.txt" />
<layout type="log4net.Layout.PatternLayout">
<conversionpattern value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<logger name="ClassLibrary1">
<level value="ERROR" />
<maximumfilesize value="256KB" />
<param value="ERROR" name="Threshold" />
<appender-ref ref="classApp1" />
</logger>
<logger name="ClassLibrary2">
<level value="WARN" />
<maximumfilesize value="256KB" />
<param value="WARN" name="Threshold" />
<appender-ref ref="classApp2" />
</logger>
<logger name="WindowsApplication1">
<level value="WARN" />
<maximumfilesize value="256KB" />
<param value="WARN" name="Threshold" />
<appender-ref ref="application" />
</logger>
</log4net>
您可以看到三个 <logger />
项和从这些记录器引用的单独的
标签。 <logger />
的“name”将指定库或应用程序的 root namespace
。 指定您需要从记录器引用的appender。 执行应用程序时,如果从 ClassLibrary2.Class2
写入日志,它将引用 <logger name="ClassLibrary2" />
条目。 这意味着输出将在 *c:\\Library2.txt* 文件中。 通过这种方式,您可以动态指定任意数量的记录器。
注意: Visual Studio 2005 格式的代码。
关注点
通过此选项,我们可以根据需要自定义我们的日志详细信息。 也可以按类记录日志。
历史
- 2007 年 5 月 9 日:第一个版本