您的位置:首页 > 其它

log4net 简单使用与配置(版本 log4net 1.2.9 )

2009-11-16 15:24 495 查看
log4net 的下载地址

http://cvs.apache.org/dist/incubator/log4net/1.2.9/incubating-log4net-1.2.9-beta.zip




网上有很多相关的内容,我说明的也是大同小异,只是帮我个人测试的步骤放上来,因为网上有代码虽然有多,但是也有很多是无法成功实现的。

可能是很多人没有试过,就直接转载,导致内容几次转载之后"变质"了



步骤:

1.先添加应用DLL,在bin文件的net/1.1/release,有个DLL,引用下

2.新建单独的配置文件,如文件名 log4net.config,

文件内容如下:

<?xml version="1.0" encoding="utf-8" ?>

<log4net debug="false">

<logger name="PenavicoxmLogger">

<level value="ALL" />

<appender-ref ref="RollingLogFileAppender" />

</logger>

<root>

<level value="ALL" />

</root>

<appender name="LogFileAppender" type="log4net.Appender.FileAppender">

<param name="File" value="Penavicoxm.log.txt" />

<param name="datePattern" value="MM-dd HH:mm" />

<param name="AppendToFile" value="true" />

<layout type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />

</layout>

</appender>

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">

<file value="log/Penavicoxm" />

<appendToFile value="true" />

<rollingStyle value="Date" />

<datePattern value=".yyyyMMdd'.txt'" />

<staticLogFileName value="false" />

<layout type="log4net.Layout.PatternLayout">

<conversionPattern value="%d [%t] %-5p %c - %m%n" />

</layout>

</appender>

</log4net>



3.在程序开始加载的地方加载配置文件 log4net.config

网上的方法大多是

web:

<1>assembly info:

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


<2>然后拷贝log4net.config到web的目录

<3>在gloable.asax
的application_start的事件

log4net.Config.XmlConfigurator.Configure( new
FileInfo("log4net.config") );

<4>如果要记录什么日志


用ApplicationLog.WriteInfo() WriteError()就可以记录

winform:


<1>assembly info:

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

<2> 在入口函数

[STAThread]

private static
void Main()

{

log4net.Config.XmlConfigurator.Configure( new
FileInfo("log4net.config") );

}


<4>然后拷贝log4net.config到bin的debug/release的目录


或者修改目标项目的属性

项目的属性-通用属性-预生成事件命令行

在那里输入copy
$(ProjectDir)log4net.config $(TargetDir)log4net.config



个人试了后,直接如下就可以了。注意:路径的问题,因为你如果在网上搜索的话,会发现很多人都是用相对路径,可能大多数情况是可行的,但是我今天试了很长时间不行,找了很久,才发现时路径的问题,现在用了绝对路径,但不是写死的。Server.MapPath()

System.IO.FileInfo fin = new System.IO.FileInfo(Server.MapPath(".") + "/log4net.config");

log4net.Config.XmlConfigurator.Configure(fin);



上面的方法成功以后,就可以写简单的代码测试了

public class Loger
{
    static ILog ilog = null;
  
    public static void CreateLoger()
    {
        if (ilog==null)
            ilog = log4net.LogManager.Exists("PenavicoxmLogger");
     
        //if (ilog.IsDebugEnabled)
          //  ilog.Debug("test", new Exception("test1ssss22"));
    }
    /// <summary>
    /// BUG日志输出
    /// </summary>
    /// <param name="titlname">标题</param>
    /// <param name="exceptionmsg">具体异常信息</param>
    public static void Debug(string titlname,string exceptionmsg) {
        CreateLoger();
        if (ilog.IsDebugEnabled)
            ilog.Debug(titlname,new Exception(exceptionmsg));
    }
    /// <summary>
    /// BUG日志输出
    /// </summary>
    /// <param name="titlname">信息</param>
    public static void Debug(string titlname)
    {
        CreateLoger();
        if (ilog.IsDebugEnabled)
            ilog.Debug(titlname);
    }
}
//可能发生的异常的地方调用,记录日志
 Loger.Debug("2222", "exception");





测试成功的话,会在项目的log文件下有个Penavicoxm.XXXXXX.txt日志文件





转 记录异常案列:

Global.asax.cs文件配置如下:

protected void Application_Start(Object sender, EventArgs e)

{

SystemLog.SetConfig();

}

protected void Application_Error(Object sender, EventArgs e)

{

Exception objExp = HttpContext.Current.Server.GetLastError();

LogHelper.WriteLog("/r/n客户机IP:"+ Request.UserHostAddress +"/r/n错误地址:"+ Request.Url +"/r/n异常信息:"+ Server.GetLastError().Message,objExp);

}

protected void Application_Start(Object sender, EventArgs e)

{

SystemLog.SetConfig();

}

protected void Application_Error(Object sender, EventArgs e)

{

Exception objExp = HttpContext.Current.Server.GetLastError();

LogHelper.WriteLog("/r/n客户机IP:"+ Request.UserHostAddress +"/r/n错误地址:"+ Request.Url +"/r/n异常信息:"+ Server.GetLastError().Message,objExp);

}

eg:

try

{}

catch(Exception ex)

{

LogHelper.WriteLog("ErrorInfo"ex);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: