您的位置:首页 > 其它

.NET 下使用 log4net

2012-12-29 15:18 316 查看
1、下载配置

到官网下载最新的log4net包,需要2个dll:Common.Logging.dll和log4net.dll

这里我也准备了一份(log4net 1.2.10.0):

http://download.csdn.net/detail/xz2001/4941367

2、创建log配置文件

在项目根目录下创建log4net_config.xml,内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender,log4net">
<param name="File" value="c:\\Logs\\springdemo.log"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
</layout>
</appender>
<appender name="SysConsoleAppender" type="log4net.Appender.ConsoleAppender,log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<root>
<level value="All" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="SysConsoleAppender" />
</root>
</log4net>
</configuration>


这里大概说一下,appender可以有多个节点,每个配置节点可以认为是一个日志输出方式,如:写入IO文件、写入数据库、输出到控件台等等,都是一个输出配置。

而<root>节点中是最终需要输出的配置,这里输出到两个地方:LogFileAppender和SysConsoleAppender,其 level 指定输入日志的级别,不太明白的可以百度一下。

3、修改AssemblyInfo.cs

为了让log4net能够找到配置文件,需要修改/Properties/AssemblyInfo.cs,在最后一行添加如下代码:

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

另外,有人说还要在Application_Start中添加这样的代码:

log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net_config.xml"));

经本人测试正常情况下是不需要的,但在集成了Spring.NET的项目中需要加入这段代码,否则日志不会写成功。

4、使用方式

public class UserController : Controller
{
public string Message { get; set; }

public ActionResult Index()
{
log4net.ILog log = log4net.LogManager.GetLogger(typeof(UserController));

log.Info("message1");
log.Debug("message2");
log.Warn("message3");

ViewBag.Message = Message;
return View();
}
}


这里的 log4net.ILog log = log4net.LogManager.GetLogger(typeof(UserController));

也可以这么创建:log4net.ILog log = log4net.LogManager.GetLogger("test");

访问后看下 c:\Logs\springdemo.log文件中的内容就知道有什么区别了,实际上相当于一个描述,是在什么地方写的日志信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: