zoukankan      html  css  js  c++  java
  • CSharp使用log4net记录日志

    一、先下载log4net.dll、Newtonsoft.Json.dll和配置log4net.config 

            相关DLL下载地址:log4net相关dll

           下载地址:http://logging.apache.org/log4net/download_log4net.cgi,把下载的文件解压,找到log4net.dll文件。

           我这里需要配置log4net.config文件,具体配置如下:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net"  type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
      </configSections>
      <log4net>
        <root>
          <level value="ALL" />
          <appender-ref ref="rollingFile" />
        </root>
        <!--<logger name="testApp.Logging">
          <level value="DEBUG" />
          <appender-ref ref="rollingFile" />
        </logger>-->
        <appender  name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
          <param name="File" type=""  value="logger/" />
          <param name="AppendToFile" value="true" />
          <param name="RollingStyle" value="Date" />
          <param name="DatePattern" value="yyyyMMdd&quot;.log&quot;" />
          <param name="StaticLogFileName" value="false" />
          <layout type="log4net.Layout.PatternLayout,log4net">
            <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
            <param name="Header" value="&#13;&#10;----------------------header--------------------------&#13;&#10;" />
            <param name="Footer" value="&#13;&#10;----------------------footer--------------------------&#13;&#10;" />
          </layout>
        </appender>
      </log4net>
    </configuration>

    另外,需要在AssemblyInfo.cs下加上以下代码

    [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

    如下图:

    二、 新建一个类库,命名为Common,先引用log4net.dll、Newtonsoft.Json.dll 在这个类库下面新建错误日志类ErrorLog.cs,,然后生成。主要代码如下:

    namespace Common
    {
        /// <summary>
        /// 密封错误日志类,不能被继承
        /// </summary>
        public sealed class ErrorLog
        {
    
            /// <summary>
            /// 导入操作日志到文件中
            /// </summary>
            /// <param name="moduleName">模块名称</param>
            /// <param name="message">错误文本信息</param>
            /// <param name="ex">异常</param>
            public static void Write(string moduleName, string message, Exception ex)
            {
                log4net.ILog log = log4net.LogManager.GetLogger(moduleName);
                if (ex != null)
                {
                    log.Error(message+";"+ex.Message,ex);
                }
                if (!string.IsNullOrEmpty(message))
                {
                    log.Info(message);
                }
                log = null;
            }
    
            /// <summary>
            /// 导入操作日志到文件中
            /// </summary>
            /// <param name="moduleName">模块名称</param>
            /// <param name="obj">对象</param>
            /// <param name="ex">异常</param>
            public static void Write(string moduleName, object obj, Exception ex)
            {
                if (ex == null)
                {
                    ex = new Exception();
                }
    
                string message = Newtonsoft.Json.JsonConvert.SerializeObject(obj);
                log4net.ILog log = log4net.LogManager.GetLogger(moduleName);
     
                if (ex != null)
                {
                    log.Error(message + ";" + ex.Message, ex);
                }
    
                if (!string.IsNullOrEmpty(message))
                {
                    log.Info(message);
                }
                log = null;
            }
    
            /// <summary>
            /// 写入操作日志到文件中
            /// </summary>
            /// <param name="moduleName"></param>
            /// <param name="ex"></param>
            public static void Write(string moduleName, Exception ex)
            {
                Write(moduleName, moduleName, ex);
            }
    
            public static void Write(string message)
            {
                Write(String.Empty, message, null);
            }
        }
    }

    三、新建WebMVC项目。需要先引用前面的Common.dll,还要把前面log4net.config拷贝到WebMVC目录下。

    这里引用,只要common改变了,WebMVC引用那边会及时更新,具体如下图:

    在HomeController写,测试代码

    ErrorLog.Write("WebMVC:" + DateTime.Now);如下图:

      四、按F5运行代码之后,WebMVC目录下会产生logger文件下,logger目录下会生成以日期命名格式的记事本文件“20150524.log”,具体如下图:

      

  • 相关阅读:
    LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法
    C#常用正则表达式
    oracle 体系结构解析
    Cloudera Manager5安装总结遇到问题及解决办法
    向CDH5集群中添加新的主机节点
    ZeroCopyLiteralByteString cannot access superclass
    如何杀掉当前正在执行的hadoop任务
    Mapreduce读取Hbase表,写数据到多个Hbase表中
    Mapreduce读取Hbase表,写数据到一个Hbase表中
    HUE 安装
  • 原文地址:https://www.cnblogs.com/allenhua/p/4526177.html
Copyright © 2011-2022 走看看