zoukankan      html  css  js  c++  java
  • .net Core 5.0 Log4Net 全局注册

    (168条消息) .net Core 5.0 Log4Net 全局注册_u011714257的博客-CSDN博客

    1、NuGet安装Log4Net

    2、创建LogHelper帮助类

    using log4net;
    using log4net.Config;
    using log4net.Repository;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Threading.Tasks;

    namespace netCore5Log4NetTest
    {
    public class LogHelper
    {
    private static ILoggerRepository repository { get; set; }
    private static ILog _Loginfo;
    private static ILog _Logerror;

    private static ILog LogInfo
    {
    get
    {
    if (_Loginfo == null)
    {
    Configure();
    }
    return _Loginfo;
    }
    }
    private static ILog LogError
    {
    get
    {
    if (_Logerror == null)
    {
    Configure();
    }
    return _Logerror;
    }
    }

    public static void Configure(string repositoryName = "NETCoreRepository", string configFile = "log4net.config")
    {
    repository = LogManager.CreateRepository(repositoryName);
    XmlConfigurator.Configure(repository, new FileInfo(configFile));
    _Logerror = LogManager.GetLogger(repositoryName, "logerror");
    _Loginfo = LogManager.GetLogger(repositoryName, "loginfo");
    }

    public static void Info(string msg)
    {
    LogInfo.Info(msg);
    }

    public static void Warn(string msg)
    {
    LogInfo.Warn(msg);
    }

    public static void Error(string msg)
    {
    LogError.Error(msg);
    }
    public static void Info(object ex)
    {
    LogInfo.Info(ex);
    }

    public static void Debug(object message, Exception ex)
    {
    LogInfo.Debug(message, ex);
    }

    public static void Warn(object message, Exception ex)
    {
    LogInfo.Warn(message, ex);
    }

    public static void Error(object message, Exception ex)
    {
    LogError.Error(message, ex);
    }

    public static void LogErrorInfo(Exception ex, object message)
    {
    LogError.Error(message, ex);
    }
    public static void Info(object message, Exception ex)
    {
    LogInfo.Info(message, ex);
    }
    }
    }

    3、创建Log4Net 配置文件log4net.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <!-- This section contains the log4net configuration settings -->
    <log4net>
    <logger name="logerror">
    <level value="ALL" />
    <appender-ref ref="ErrorAppender" />
    </logger>
    <!--信息日志类-->
    <logger name="loginfo">
    <level value="ALL" />
    <appender-ref ref="InfoAppender" />
    </logger>
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="Log\\LogInfo\\" />
    <param name="AppendToFile" value="true" />
    <!--保证多个日志文件后缀名:log.1.htm-->
    <param name="PreserveLogFileNameExtension" value="true" />
    <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
    <param name="MaxSizeRollBackups" value="-1" />
    <!--每个文件的大小。只在混合方式与文件大小方式下使用。超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志-->
    <param name="MaximumFileSize" value="100MB" />
    <!--计数类型为1,2,3…-->
    <!--<param name="CountDirection" value="1"/>-->
    <!--是否只写到一个文件中-->
    <param name="StaticLogFileName" value="false" />
    <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
    <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
    <param name="RollingStyle" value="Composite" />
    <!-- 信息日志布局-->
    <layout type="log4net.Layout.PatternLayout">
    <param name="ConversionPattern" value="&lt;HR COLOR=blue&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;" />
    </layout>
    </appender>
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="Log\\LogError\\" />
    <param name="AppendToFile" value="true" />
    <!--保证多个日志文件后缀名:log.1.htm-->
    <param name="PreserveLogFileNameExtension" value="true" />
    <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
    <param name="MaxSizeRollBackups" value="-1" />
    <!--每个文件的大小。只在混合方式与文件大小方式下使用。超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志-->
    <param name="MaximumFileSize" value="100MB" />
    <!--是否只写到一个文件中-->
    <param name="StaticLogFileName" value="false" />
    <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
    <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
    <param name="RollingStyle" value="Composite" />
    <!--布局-->
    <layout type="log4net.Layout.PatternLayout">
    <param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;" />
    </layout>
    </appender>
    </log4net>
    </configuration>
    4、最后一步初始化日志配置

    然后就不用所有地方依赖注入了,可以全局使用。

  • 相关阅读:
    Sectong日志分析
    风暴中心
    安全趋势:
    Mysql table ful
    linux service命令常见使用方法
    client denied by server configuration
    Ubuntu配置apache
    O2O助汪峰成功逆袭,汪峰最终上头条了
    Android切图注意事项
    2014/08/23——OJ及相关站点打开速度非常慢,训练计划login直接error!
  • 原文地址:https://www.cnblogs.com/lzjsky/p/15732237.html
Copyright © 2011-2022 走看看