• 转载:使用单独的log4net类


    1、新建一个解决方案,取名为AloneLog

    2、添加一个类库工程,取名为Log.Class

         2.1 为Log.Class工程引用log4net.dll;

         2.2 为Log.Class工程添加log4net.dll的引用;

         2.3在AssemblyInfo.cs文件的最后添加:

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

        2.4 为Log.Class工程添加一个输出日志的类文件LogOut.cs,其内容如下:

     using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace AloneLog
    {
        public class LogOut
        {
            public static void debug(string message)
            {
                log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
                if (log.IsDebugEnabled)
                {
                    log.Debug(message);
                }
                log = null;
            }

            public static void error(string message)
            {
                log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
                if (log.IsErrorEnabled)
                {
                    log.Error(message);
                }
                log = null;
            }

            public static void fatal(string message)
            {

                log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
                if (log.IsFatalEnabled)
                {
                    log.Fatal(message);
                }
                log = null;
            }
            public static void info(string message)
            {
                log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
                if (log.IsInfoEnabled)
                {
                    log.Info(message);
                }
                log = null;
            }

            public static void warn(string message)
            {
                log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
                if (log.IsWarnEnabled)
                {
                    log.Warn(message);
                }
                log = null;
            }
        }
    }

       2.5 编译Log.Class类库工程。

    3、添加一个web 应用程序,取名为Log.Web。

        3.1 为Log.Web应用程序引入Log.Class工程bin目录下的Log.Class.dll;

       3.2 在web 应用程序Log.Web的配置文件web.config文件中添加log4net的配置:

       <?xml version="1.0"?>
    <configuration>
     <configSections>
      <sectionGroup >

    ........
      </sectionGroup>

        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />

      </configSections>


     <appSettings/>
     <connectionStrings/>

      <log4net>
        <root>
          <!--
       <level value="ALL" />
       <appender-ref ref="rootFile" />
       -->
        </root>
        <logger name="LogWebEdu">
          <level value="DEBUG" />
          <appender-ref ref="rollingFile" />
        </logger>
        <appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
          <param name="File" type="" value="log/log.txt" />
          <param name="AppendToFile" value="true" />
          <param name="RollingStyle" value="Date" />
          <param name="DatePattern" value="yyyyMMdd" />
          <param name="StaticLogFileName" value="true" />
          <layout type="log4net.Layout.PatternLayout,log4net">
            <param name="ConversionPattern" value="%n%d %r [%t] %-5p %c %L - %m%n" />
          </layout>
        </appender>
      </log4net>


      <system.web>

    ......
     </system.web>
    </configuration>

        3.2 在需要输出日志的文件里(在此为default.aspx.cs)调用输出日志的方法,代码如下:

      using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Log.Class;

    namespace Log.Web
    {
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    LogOut.debug("单独日志类测试");
                }

            }
        }
    }

    除此之外,不需要再配置其它内容,原来写在一起的时候,还要在gloab.asax里添加对log4net的声明,在这个项目中我没有添加也可以输出日志文件,在web应用程序Log.Web的AssemblyInfo.cs中也没有添加对log4net的声明,只是在类库文件的AssemblyInfo.cs中添加了。

    7、运行Log.Web应用程序,在Log.Web目录下会多了一个log目录,在log目录下就可以看到日志文件了,

    2009-04-26 11:17:36,671 86425156 [8] DEBUG LogOut 15 - 单独日志类测试

    附加:

    log4net.Layout.PatternLayout中的转换模式(ConversionPattern)

    %m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息

    %n(new line):换行

    %d(datetime):输出当前语句运行的时刻

    %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数

    %t(thread id):当前语句所在的线程ID

    %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等

    %c(class):当前日志对象的名称,

    %L:输出语句所在的行号

    %F:输出语句所在的文件名

    %-数字:表示该项的最小长度,如果不够,则用空格填充

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yanli0823/archive/2009/04/25/4122150.aspx#FeedBack

  • 相关阅读:
    面试代码基础(一)从strstr说起
    面试笔试总结(二)之 C++基础
    面试笔试总结(一)之 C++基础
    HMM代码实践
    计算两篇文章相似度代码
    主题模型
    mysql5.6.34-debug Source distribution在树莓派下编译的几个错误
    windows守护进程脚本
    fastcgi模式下设置php最大执行时间
    mysql基础知识笔记
  • 原文地址:https://www.cnblogs.com/qipilang/p/1623933.html
Copyright © 2020-2023  润新知