log4net在webservice调用实现过程

躺坑过程:

一,引用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&quot;.log&quot;" />
			<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&quot;.log&quot;" />
			<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="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />-->
		<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&quot;.log&quot;" />
	  <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="&lt;HR COLOR=blue&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />-->
      <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());

猜你喜欢

转载自blog.csdn.net/qq_34719168/article/details/82594855