之前用webservice调用log4net ,往数据库中写日志,怎么测试都不通,直到看到这篇文章,在AssemblyInfo里添加下边那句话,然后通了,因此记录下来,下次配置时可用来参考
转载自:https://blog.csdn.net/qq_34719168/article/details/82594855
躺坑过程:
一,引用log4net.dll。
二,AssemblyInfo里添加
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
这样就会监视配置文件,配置文件一变动,就会生成文件夹及文件,而且不能删除,可只要把配置改成有错的,就能删除,这样也好,适合慢慢试。
三,log4net.config:一定要将log4net.config的属性改成,复制到输出目录:始终复制,生成操作:内容。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net debug="true"> //后来试出,加不加debug="true"都正常
<!--<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Log/" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd".log"" />
<param name="MaxSizeRollBackups" value="10000" />
<param name="MaximumFileSize" value="10M" />
<param name="StaticLogFileName" value="false" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%m%n" />
</layout>
</appender>-->
//配置内容,不要写错,网上有些错误,试了好久
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="bin\\Log\\LogError\\" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd".log"" />
<param name="MaxSizeRollBackups" value="10000" />
<param name="MaximumFileSize" value="10M" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<param name="StaticLogFileName" value="false" /> //自动生成日期文件名
<layout type="log4net.Layout.PatternLayout">
<!--<param name="ConversionPattern" value="<HR COLOR=red>%n异常时间:%d [%t] <BR>%n异常级别:%-5p <BR>%n异 常 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" />-->
<param name="ConversionPattern" value="%m%n" />//配置写入格式
</layout>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="bin\\Log\\LogInfo\\" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd".log"" />
<param name="MaxSizeRollBackups" value="10000" />
<param name="MaximumFileSize" value="10M" />
<param name="StaticLogFileName" value="false" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<!--<param name="ConversionPattern" value="<HR COLOR=blue>%n日志时间:%d [%t] <BR>%n日志级别:%-5p <BR>%n日 志 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" />-->
<param name="ConversionPattern" value="%m%n" />
</layout>
</appender>
<logger name="logerror">
<level value="ALL" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="loginfo">
<level value="ALL" />
<appender-ref ref="InfoAppender" />
</logger>
<root> //没试出到底有什么用,但不配置其它的内容时,这段和上面对应的打开后,就可以调试。
<!--<level value="DUBEG" />
<appender-ref ref="RollingLogFileAppender" />-->
</root>
</log4net>
</configuration>
四,操作类
public class LogHelper
{
public readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
public readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
public void WriteLog(string info)
{
if (loginfo.IsInfoEnabled)
{
loginfo.Info(info);
}
}
public void WriteLog(string info, Exception se)
{
if (logerror.IsErrorEnabled)
{
logerror.Error(info, se);
}
}
}
五,在webservice里测试
LogHelper lh = new LogHelper();
lh.WriteLog(string.Format("当前的时间{0}", DateTime.Now.ToString()));
lh.WriteLog("error", new Exception());