配置jsnlog.log4net日志文件路径
Configure jsnlog.log4net log file path
我的 MVC 应用程序使用 log4net 进行服务器日志记录,我刚刚添加了 jsnlog.log4net 用于 javascript 日志记录。我按照官方指南进行了配置,并且运行良好。
而且我没有对 log4net.config 文件做任何更改。
现在 log4net 和 jsnlog 使用相同的 txt 文件来记录它们的日志。我需要将那里的日志分成两个不同的文件。这样我就可以轻松识别服务器日志和 javascript 日志。
这是我的 log4net.config 文件。
<?xml version="1.0" encoding="utf-8" ?>
<log4netConfiguration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<appSettings>
<add key="log4net.Config" value="log4net.config" />
</appSettings>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="C:\buttonwood_logs\buttonwood_web_log\buttonwood_log_%date{ddMMyyyy}.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="5MB" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n"/>
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
</log4netConfiguration>
尝试这样的事情:(有关更多信息,请参阅代码项目文章 - Use Multiple log4net Outputs from One Application)
<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>
要记录到两个文件,您需要有两个附加程序,每个附加程序都有一个记录器。
由于您已经在配置中定义了一个根元素,最简单的方法是为您的 JavaScript 代码设置一个特定的记录器,并将其他所有内容转到现有的附加程序:
<!-- additivity=false means "don't inherit appenders from the root logger" -->
<logger name="JSLogger" additivity="false">
<level value="INFO" />
<appender-ref ref="JSFileAppender" />
</logger>
然后设置appender:
<appender name="JSFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString"
value="C:\buttonwood_logs\jslog\buttonwood_log_%date{ddMMyyyy}.log" />
… etc.
当您在 jsnlog 中创建记录器时,您必须通过名称引用它,例如GetLogger("JSLogger")
在您的网络配置中。
<jsnlog serverSideLogger="ClientLog">
在你的 log4net 标签中
<log4net>
<appender name="JSFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="..\Log\Client.log" />
<appendToFile value="true" />
<maximumFileSize value="100MB" />
<maxSizeRollBackups value="5" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d %level %thread - %message%newline" />
</layout>
</appender>
<logger name="ClientLog" additivity="false">
<level value="DEBUG" />
<appender-ref ref="JSFileAppender" />
</logger>
</log4net>
记录器名称必须与 jsnlog 服务器侧记录器配置具有相同的值
我的 MVC 应用程序使用 log4net 进行服务器日志记录,我刚刚添加了 jsnlog.log4net 用于 javascript 日志记录。我按照官方指南进行了配置,并且运行良好。 而且我没有对 log4net.config 文件做任何更改。
现在 log4net 和 jsnlog 使用相同的 txt 文件来记录它们的日志。我需要将那里的日志分成两个不同的文件。这样我就可以轻松识别服务器日志和 javascript 日志。
这是我的 log4net.config 文件。
<?xml version="1.0" encoding="utf-8" ?>
<log4netConfiguration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<appSettings>
<add key="log4net.Config" value="log4net.config" />
</appSettings>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="C:\buttonwood_logs\buttonwood_web_log\buttonwood_log_%date{ddMMyyyy}.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="5MB" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n"/>
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
</log4netConfiguration>
尝试这样的事情:(有关更多信息,请参阅代码项目文章 - Use Multiple log4net Outputs from One Application)
<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>
要记录到两个文件,您需要有两个附加程序,每个附加程序都有一个记录器。
由于您已经在配置中定义了一个根元素,最简单的方法是为您的 JavaScript 代码设置一个特定的记录器,并将其他所有内容转到现有的附加程序:
<!-- additivity=false means "don't inherit appenders from the root logger" -->
<logger name="JSLogger" additivity="false">
<level value="INFO" />
<appender-ref ref="JSFileAppender" />
</logger>
然后设置appender:
<appender name="JSFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString"
value="C:\buttonwood_logs\jslog\buttonwood_log_%date{ddMMyyyy}.log" />
… etc.
当您在 jsnlog 中创建记录器时,您必须通过名称引用它,例如GetLogger("JSLogger")
在您的网络配置中。
<jsnlog serverSideLogger="ClientLog">
在你的 log4net 标签中
<log4net>
<appender name="JSFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="..\Log\Client.log" />
<appendToFile value="true" />
<maximumFileSize value="100MB" />
<maxSizeRollBackups value="5" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d %level %thread - %message%newline" />
</layout>
</appender>
<logger name="ClientLog" additivity="false">
<level value="DEBUG" />
<appender-ref ref="JSFileAppender" />
</logger>
</log4net>
记录器名称必须与 jsnlog 服务器侧记录器配置具有相同的值