.NET 下使用 log4net

22 篇文章 0 订阅
9 篇文章 0 订阅

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文件中的内容就知道有什么区别了,实际上相当于一个描述,是在什么地方写的日志信息。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值