C#中使用Log4记录日志

Log4Net配置还是挺简单的,具体:

1、新建Web或者Webform项目,使用Nuget下载log4net

2、新建Config文件夹,将log4net配置文件放入此文件夹中(当修改web.config的时候会重启网站,所以把log4net单独出来比较好,也好管理),log4net配置:

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <log4net>
 3   <appender name="fatalAppender" type="log4net.Appender.RollingFileAppender">
 4     <filter type="log4net.Filter.LevelMatchFilter">
 5       <levelToMatch value="FATAL" />
 6     </filter>
 7     <filter type="log4net.Filter.DenyAllFilter" />
 8     <File value="Logs\fatal.log" />
 9     <appendToFile value="true" />
10     <rollingStyle value="Date" />
11     <datePattern value="yyyyMMdd" />
12     <layout type="log4net.Layout.PatternLayout">
13       <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
14     </layout>
15   </appender>
16   <appender name="errorAppender" type="log4net.Appender.RollingFileAppender">
17     <filter type="log4net.Filter.LevelMatchFilter">
18       <levelToMatch value="ERROR" />
19     </filter>
20     <filter type="log4net.Filter.DenyAllFilter" />
21     <File value="Logs\err.log" />
22     <appendToFile value="true" />
23     <rollingStyle value="Date" />
24     <datePattern value="yyyyMMdd" />
25     <layout type="log4net.Layout.PatternLayout">
26       <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
27     </layout>
28   </appender>
29   <appender name="warnAppender" type="log4net.Appender.RollingFileAppender">
30     <filter type="log4net.Filter.LevelMatchFilter">
31       <levelToMatch value="WARN" />
32     </filter>
33     <filter type="log4net.Filter.DenyAllFilter" />
34     <File value="Logs\warn.log" />
35     <appendToFile value="true" />
36     <rollingStyle value="Date" />
37     <datePattern value="yyyyMMdd" />
38     <layout type="log4net.Layout.PatternLayout">
39       <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
40     </layout>
41   </appender>
42   <appender name="infoAppender" type="log4net.Appender.RollingFileAppender">
43     <filter type="log4net.Filter.LevelMatchFilter">
44       <levelToMatch value="INFO" />
45     </filter>
46     <filter type="log4net.Filter.DenyAllFilter" />
47     <File value="Logs\info.log" />
48     <appendToFile value="true" />
49     <rollingStyle value="Date" />
50     <datePattern value="yyyyMMdd" />
51     <layout type="log4net.Layout.PatternLayout">
52       <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
53     </layout>
54   </appender>
55   <appender name="debugAppender" type="log4net.Appender.RollingFileAppender">
56     <filter type="log4net.Filter.LevelMatchFilter">
57       <levelToMatch value="DEBUG" />
58     </filter>
59     <filter type="log4net.Filter.DenyAllFilter" />
60     <File value="Logs\debug.log" />
61     <appendToFile value="true" />
62     <rollingStyle value="Date" />
63     <datePattern value="yyyyMMdd" />
64     <layout type="log4net.Layout.PatternLayout">
65       <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
66     </layout>
67   </appender>
68   <appender name="perfAppender" type="log4net.Appender.RollingFileAppender">
69     <filter type="log4net.Filter.LevelMatchFilter">
70       <levelToMatch value="INFO" />
71     </filter>
72     <filter type="log4net.Filter.DenyAllFilter" />
73     <File value="Logs\perf.log" />
74     <appendToFile value="true" />
75     <rollingStyle value="Date" />
76     <datePattern value="yyyyMMdd" />
77     <layout type="log4net.Layout.PatternLayout">
78       <conversionPattern value="%date %logger - %message%newline" />
79     </layout>
80   </appender>
81   <root>
82     <level value="ALL" />
83     <appender-ref ref="fatalAppender" />
84     <appender-ref ref="errorAppender" />
85     <appender-ref ref="warnAppender" />
86     <appender-ref ref="infoAppender" />
87     <appender-ref ref="debugAppender" />
88   </root>
89 </log4net>

3、右键点击第2步骤的log4net文件属性,改成如图所示

在app.config或者web.config中的configuration节点下加入:

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

4、在Properties下的AssemblyInfo.cs文件中加入

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

我写了一个log4帮助类方便使用,代码:

 1     public static class Log4Helper
 2     {
 3         public static void Fatal(Type type, object message, Exception exception = null)
 4         {
 5             ILog log = LogManager.GetLogger(type);
 6             if (exception == null)
 7                 log.Fatal(message);
 8             else
 9                 log.Fatal(message, exception);
10         }
11
12         public static void Error(Type type, object message, Exception exception = null)
13         {
14             ILog log = LogManager.GetLogger(type);
15             if (exception == null)
16                 log.Error(message);
17             else
18                 log.Error(message, exception);
19         }
20
21         public static void Warn(Type type, object message, Exception exception = null)
22         {
23             ILog log = LogManager.GetLogger(type);
24             if (exception == null)
25                 log.Warn(message);
26             else
27                 log.Warn(message, exception);
28         }
29
30         public static void Info(Type type, object message, Exception exception = null)
31         {
32             ILog log = LogManager.GetLogger(type);
33             if (exception == null)
34                 log.Info(message);
35             else
36                 log.Info(message, exception);
37         }
38
39         public static void Debug(Type type, object message, Exception exception = null)
40         {
41             ILog log = LogManager.GetLogger(type);
42             if (exception == null)
43                 log.Debug(message);
44             else
45                 log.Debug(message, exception);
46         }
47     }

5、调用:

1             Log4Helper.Fatal(this.GetType(), "Fatal");
2             Log4Helper.Error(this.GetType(), "Error", new Exception("error"));
3             Log4Helper.Warn(this.GetType(), "Warn");
4             Log4Helper.Info(this.GetType(), "Info");
5             Log4Helper.Debug(this.GetType(), "Debug");

在根目录会有一个Log文件夹,里面:

时间: 2024-07-30 13:43:39

C#中使用Log4记录日志的相关文章

Java使用Log4记录日志

我们在系统使用中,为了方便查找问题,因此需要记录操作的日志,而目前比较成熟稳定的程序日志记录方式就是Log4,本人也是菜鸟,然后再学习研究中就记录一下使用方式,以方便今后查阅,同时本文章参考了博客园:http://www.cnblogs.com/zhangpengshou/p/5128050.html 的文章,在此表示感谢. Log4有1.x版本和2.x版本,两个版本的使用方式有很大区别,为了方便在此使用2.x版本. 代码很简单,首先要配置xml,在类的同级创建log4j2.xml如下: <?x

Asp.Net Core中使用NLog记录日志

2019/10/28, Asp.Net Core 3.0, NLog 4.6.7, NLog.Web.AspNetCore 4.9.0 摘要:NLog在asp.net网站中的使用,NLog日志写入数据库,NLog日志写入文件 需求 1.日志自动写入到数据库.写入到文件 2.appsettings.json数据库连接更改后,不需要去改NLog中的连接地址,启动网站或项目时自动检测变动然后去更改,以appsettings.json为准,保持同步. 3.写入日志时,除了NLog自带的字段,新增LogT

在Spring项目中使用Log4j记录日志

(1)引入log4j的jar包: 官网下载地址:http://logging.apache.org/log4j/1.2/download.html (2)在web.xml中添加log4j配置: 1 2 3 4 5 6 7 8 <context-param>     <param-name>log4jConfigLocation</param-name>     <param-value>classpath:log4j.properties</param

Spring中使用Log4j记录日志

以下内容引用自http://wiki.jikexueyuan.com/project/spring/logging-with-log4j.html: 例子: pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.a

C# 中使用log4.net的注意事项

新建Log4Net.config文件,内容为 <?xml version="1.0" encoding="utf-8" ?> <configuration> <!--log配置--> <log4net> <logger additivity="false" name="C#"> <level value="ALL" /> <app

项目中记录log4j记录日志

1. 导入如上 log下的对应jar包 2. 在src下新建log4j.properties文件,类容如(详细配置:http://www.cnblogs.com/suman/archive/2010/10/23/1858864.html ) 3.编写代码 import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; Log log = LogFactory.getLog( this .ge

使用Topshelf创建Windows服务,服务中使用log4net记录日志

一.新建一个控制台应用程序 二.使用nuget引用 TopShelf和log4net插件 三.log4net配置文件添加 在根目录增加log4net.config文件和logHelper类库的添加 log4net.config内容如下: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="lo

ORACLE在存储过程中记录日志的处理包

Java开发过程中一般使用LOG4J来将程序的运行日志记录到文件中,在ORACLE存储过程中也需要记录日志,我将工作中自己整理的一个记录日志的包分享出来,其实很简单,希望大家多提意见. 一.表结构 为了能给运维人员查看到相关日志,日志最好记录在表中,表信息如下: 其中序号并不是必须的,日志级别参考了LOG4J的日志类型,但没有全部拿过来,只是将常用的几个拿过来了. 二.实现 实现就是按照表结构插入数据了,这里为了更方便一些,定义了一个包,插入时对字段进行了长度4000的截取,详细如下: [sql

译:在ASP.NET MVC5中如何使用Apache log4net 类库来记录日志

译文出处:http://www.codeproject.com/Articles/823247/How-to-use-Apache-log-net-library-with-ASP-NET-MVC 在运行软件程序的时候,跟踪和监控日志是一种记录过程的好方法. 简介: 在运行软件程序的时候,跟踪和监控日志是一种记录过程的好方法.尤其在应用程序出错的时候,日志是我们最需要的文件.不管是在web,winform,windowsphone. 这里我们将一步一步讲解如何在ASP.NET MVC5应用程序中