1,引用Log4Net.dll 。当前为2.0.8.0版,可添加Nuget包。我的办法是从下载的包中直接引用相应.net版本的dll以减小项目体积

2,在App.config中增加<section>节和<log4net>节。注意一个配置文件最多只能有一个configSections节,如果有必须是第一个节点

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<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="Log\\LogError\\" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="10240" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />
</layout>
<!--&lt; &gt; = <> %n = 回车-->
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogInfo\\" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" />
</layout>
</appender>
</log4net>
</configuration>
3,项目AssemblyInfo.cs文件中增加一行代码,指明从配置文件中读取配置

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

4,项目中添加日志类

 public class LogHelper
{
private LogHelper()
{
} public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo"); public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror"); public static void SetConfig()
{
log4net.Config.XmlConfigurator.Configure();
} public static void SetConfig(FileInfo configFile)
{
log4net.Config.XmlConfigurator.Configure(configFile);
} public static void WriteLog(string info)
{
if (loginfo.IsInfoEnabled)
{
loginfo.Info(info);
}
} public static void WriteLog(string info, Exception se)
{
if (logerror.IsErrorEnabled)
{
logerror.Error(info, se);
}
}
}

5,测试

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace TestLog4Net
{
class Program
{
static void Main(string[] args)
{
try
{
LogHelper.WriteLog("程序启动,正常记录!");
int a = Convert.ToInt32("zzz");
}
catch (Exception ex)
{
LogHelper.WriteLog("错误", ex);
}
}
}
}

6,测试结果:运行目录下生成log文件夹,其下两个文件夹:LogError,LogInfo,其内是以日期为文件名的Txt日志

参考:

  C# 使用/配置Log4Net

最新文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(58)-DAL层重构
  2. .NET NPOI导出Excel详解
  3. wcf序列化大对象时报错:读取 XML 数据时,超出最大
  4. Oracle PL/SQL中的循环处理(sql for循环)
  5. [转]Java 动态代理机制分析及扩展
  6. Java基础知识强化之网络编程笔记05:UDP之多线程实现聊天室案例
  7. JavaScript中的一些细节
  8. 打印NxN的矩阵
  9. 201521123001《Java程序设计》第2周学习总结
  10. Java面向对象特征之封装
  11. sql相同表不同查询条件合并显示
  12. Centos7 ssh配置RSA证书登录
  13. Java-从Double类型精度丢失认识BigDecimal
  14. 【转】- 从FM推演各深度CTR预估模型(附代码)
  15. Flutter之MaterialApp使用详解
  16. DateUtils时间单元说明
  17. 快速创建IIS站点并设置权限
  18. bzoj4985 评分 (二分答案+dp)
  19. H5图片预览、压缩、上传
  20. Matlab量化函数quantiz解析

热门文章

  1. 10件在PHP7中不要做的事情
  2. Eclipse转Android Studio工程实践
  3. 转--NLTK的内置函数
  4. 进程基本-进程创建,僵尸进程,exec系列函数
  5. springMvc上传文件、读取zip/rar文件
  6. ubuntu安装tushare
  7. SpringBoot 之 普通类获取Spring容器中的bean
  8. Hadoop 2.7.3 安装配置及测试
  9. 好记性比如烂笔头--linux学习笔记7关于linux中的shell脚本编程
  10. [代码]multimap员工分组案例