首页 > 代码库 > Log4net用法

Log4net用法

日记是我们在程序中经常用到的,故记于此

首先要下载Log4net.dll

官方网站:http://logging.apache.org/log4net/

vs里创建一个c#控制台程序,在App.config里设置

技术分享

这里设置的目的,有两个,一为了得到log4net.config的文件,另一个就是日记的开关,日记是否开启

现在看主函数里怎么用

using log4net.Config;using log4net;namespace Test {    class Program {               static void Main(string[] args) {            //初始化日志文件             string state = ConfigurationManager.AppSettings["IsWriteLog"];            //判断是否开启日志记录            if (state == "1") {                var path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase +                           ConfigurationManager.AppSettings["log4net"];                var fi = new System.IO.FileInfo(path);                log4net.Config.XmlConfigurator.Configure(fi);            }            LogHelper.WriteLog("holle world");                   }           }}
string state = ConfigurationManager.AppSettings["IsWriteLog"];这个是获取日记的开关

 var path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase +                           ConfigurationManager.AppSettings["log4net"];                var fi = new System.IO.FileInfo(path);                log4net.Config.XmlConfigurator.Configure(fi);

 

上面fi就是log4net.config的文件位置,然后
 log4net.Config.XmlConfigurator.Configure(fi);


然后就是LogHelper类了,这个是个简单的日记帮助类
    /// <summary>      /// LogHelper的摘要说明。       /// </summary>       public class LogHelper {        /// <summary>        /// 静态只读实体对象info信息        /// </summary>        public static readonly log4net.ILog Loginfo = log4net.LogManager.GetLogger("loginfo");        /// <summary>        ///  静态只读实体对象error信息        /// </summary>        public static readonly log4net.ILog Logerror = log4net.LogManager.GetLogger("logerror");        /// <summary>        ///  添加info信息        /// </summary>        /// <param name="info">自定义日志内容说明</param>        public static void WriteLog(string info) {            try {                if (Loginfo.IsInfoEnabled) {                    Loginfo.Info(info);                }            } catch { }        }        /// <summary>        /// 添加异常信息        /// </summary>        /// <param name="info">自定义日志内容说明</param>        /// <param name="ex">异常信息</param>        public static void WriteLog(string info, Exception ex) {            try {                if (Logerror.IsErrorEnabled) {                    Logerror.Error(info, ex);                }            } catch { }        }    }

最后是log4net.config设置文件

<?xml version="1.0" encoding="utf-8" ?><configuration>  <configSections>    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />  </configSections>  <log4net>    <logger name="logerror">      <level value="ERROR" />      <appender-ref ref="ErrorAppender" />    </logger>    <logger name="loginfo">      <level value="INFO" />      <appender-ref ref="InfoAppender" />    </logger>    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">      <!--设置日志存储路径-->      <param name="File" value="Data//WebLog//LogError//" />      <!--是否追加到文件-->      <param name="AppendToFile" value="true" />      <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="http://www.mamicode.com/-1"为不限文件数-->      <param name="MaxSizeRollBackups" value="100" />      <param name="MaxFileSize" value="1024" />      <!--是否只写到一个文件中-->      <param name="StaticLogFileName" value="false" />      <!--这是按日期产生文件夹,并在文件名前也加上日期-->      <param name="DatePattern" value="yyyyMM/dd&quot;.log&quot;" />      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->      <param name="RollingStyle" value="Date" />      <layout type="log4net.Layout.PatternLayout">        <param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n异常:%exception%n%n " />      </layout>    </appender>    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">      <!--设置日志存储路径-->      <param name="File" value="Data//WebLog//LogInfo//" />      <!--是否追加到文件-->      <param name="AppendToFile" value="true" />      <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="http://www.mamicode.com/-1"为不限文件数-->      <param name="MaxSizeRollBackups" value="100" />      <param name="MaxFileSize" value="1024" />      <!--是否只写到一个文件中-->      <param name="StaticLogFileName" value="false" />      <!--这是按日期产生文件夹,并在文件名前也加上日期-->      <param name="DatePattern" value="yyyyMM/dd&quot;.log&quot;" />      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->      <param name="RollingStyle" value="Date" />      <layout type="log4net.Layout.PatternLayout">        <param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n消息描述:%c [%x] %n%m %n " />      </layout>    </appender>  </log4net></configuration>

然后就可以了,日记就在bin\Debug\Data\WebLog\LogInfo下

技术分享

 

 

 

 

Log4net用法