C# 日志系统 log4net 配置及使用

1、引用Dll

版本是:1.2.10.0,下载Dll

2、Web.config文件配置

复制代码
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
  <!--log4net配置-->
  <log4net>
    <root>
      <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF
          比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录
          如果没有定义LEVEL的值,则缺省为DEBUG-->
      <level value="ERROR"/>
      <appender-ref ref="RollingFileAppender"/>
    </root>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--日志文件地址及名称(名称为日期,保证一天一个文件)-->
      <param name="File" type="log4net.Util.PatternString" value="logs\%date{yyyyMMdd}.log.txt" />
      <!--多线程时采用最小锁定-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
      <!--是否追加到文件,默认为true,通常无需设置-->
      <appendToFile value="true"/>
      <!--这种情况下MaxSizeRollBackups和maximumFileSize的节点设置才有意义-->
      <RollingStyle value="Size"/>
      <!--每天记录的日志文件个数,与maximumFileSize配合使用-->
      <MaxSizeRollBackups value="10"/>
      <!--每个日志文件的最大大小,可用的单位:KB|MB|GB,不要使用小数,否则会一直写入当前日志-->
      <maximumFileSize value="1MB"/>
      <!--日志格式-->
      <layout type="log4net.Layout.PatternLayout">
        <Header value="&#13;&#10;----------------------header--------------------------&#13;&#10;" />
        <!--conversionPattern:
            %m(message):输出的日志消息;
            %n(newline):换行;
            %d(datetime):输出当前语句运行的时刻;
            %r(runtime):输出程序从运行到执行到当前语句时消耗的毫秒数;
            %t(threadid):当前语句所在的线程ID ;
            %p(priority): 日志的当前日志级别;
            %c(class):当前日志对象的名称;
            %L:输出语句所在的行号;
            %F:输出语句所在的文件名; 
            %-10:表示最小长度为10,如果不够,则用空格填充;-->
        <conversionPattern value="%d [%t] %-5p %c [%x] - %m%n"/>
      </layout>
    </appender>
  </log4net>
</configuration>
复制代码

3、Global.asax中Application_Start设置

//注册log4net(读取Log4Net配置信息)
log4net.Config.XmlConfigurator.Configure();

4、调用

复制代码
public class HomeController : BaseController
{
        private log4net.ILog logger = log4net.LogManager.GetLogger(typeof(HomeController));

        /// <summary>
        /// 网站主页
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            //日志
            logger.Error("测试错误!" );
            return View();
        }
}
复制代码

 

posted @     阅读(1527)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示