zoukankan      html  css  js  c++  java
  • log4net 写入日志到不同的位置

    某些业务需要根据不同的功能将日志记录到不同的位置,以便于区分。

    <?xml version="1.0" encoding="utf-8" ?>
    <log4net>
      <appender name="Console" type="log4net.Appender.ConsoleAppender">
        <layout type="log4net.Layout.PatternLayout">
          <!-- Pattern to output the caller's file name and line number -->
          <conversionPattern value="%5level [%thread] (%file:%line) - %date - %message%newline" />
        </layout>
      </appender>
    
      <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
        <file type="log4net.Util.PatternString" value="Logs\Common\%date{yyyy-MM-dd}.log" />
        <appendToFile value="true" />
        <rollingStyle value="Composite" />
        <datePattern value="yyyyMMdd" />
        <maxSizeRollBackups value="10" />
        <maximumFileSize value="1KB" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
      </appender>
      <appender name="EventLoggerAppender" type="log4net.Appender.RollingFileAppender">
        <file type="log4net.Util.PatternString" value="Logs\Events\%date{yyyy-MM-dd}.log" />
        <appendToFile value="true" />
        <rollingStyle value="Composite" />
        <datePattern value="yyyyMMdd" />
        <maxSizeRollBackups value="10" />
        <maximumFileSize value="1KB" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
      </appender>
      <logger name="FileLogger">
        <level value="ALL" />
        <appender-ref ref="RollingLogFileAppender" />
      </logger>
    
      <logger name="EventLogger">
        <level value="ALL" />
        <appender-ref ref="EventLoggerAppender" />
      </logger>
      <!-- <root> -->
      <!--   <level value="DEBUG" /> -->
      <!--   <appender-ref ref="RollingLogFileAppender" /> -->
      <!--   <appender-ref ref="Console" /> -->
      <!-- </root> -->
    </log4net>

    日志工具类(这里只是简单的封装):

    public static class LogHelper
    {
        private static readonly ILog logger = LogManager.GetLogger("FileLogger");
        private static readonly ILog eventLogger = LogManager.GetLogger("EventLogger");
        static LogHelper()
        {
            log4net.Config.XmlConfigurator.Configure(new FileInfo(HttpContext.Current.Server.MapPath("~/log4net.config")));
        }
    
        public static void Error(string errMessage)
        {
            logger.Error(errMessage);
        }
    
        public static void LogEvent(string errMessage)
        {
            eventLogger.Error(errMessage);
        }
    }
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            LogHelper.Error("出错啦");
            LogHelper.LogEvent("fafdsafdsaff");
            ViewBag.Title = "Home Page";
    
            return View();
        }
    }

    浏览页面后,可以看到日志目录如下:

    参考资料:https://stackoverflow.com/questions/11930381/log4net-multiple-appenders-writing-to-event-viewer

  • 相关阅读:
    selenium+python环境搭建
    TCP/IP 常用协议
    爬虫之scrapy高级部分等相关内容-138
    爬虫之xpath和scrapy的基础使用等相关内容-137
    爬虫之打码平台(超级鹰)破解验证码等相关内容-136
    爬虫之bs4文档树和selenium的基础使用等相关内容-135
    RBAC、xadmin、django缓存、django信号等相关内容-91
    django-restframework-jwt多方式登录、自定义user表及签发token、book表单增删查改等相关内容-90
    爬虫之bs4模块的基础使用等相关内容-134
    django-restframework-jwt认证基础使用等相关内容-89
  • 原文地址:https://www.cnblogs.com/godbell/p/9368881.html
Copyright © 2011-2022 走看看