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、最后一步初始化日志配置

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

  • 相关阅读:
    ZOJ 1002 Fire Net (火力网)
    UVa OJ 117 The Postal Worker Rings Once (让邮差只走一圈)
    UVa OJ 118 Mutant Flatworld Explorers (变体扁平世界探索器)
    UVa OJ 103 Stacking Boxes (嵌套盒子)
    UVa OJ 110 MetaLoopless Sorts (无循环元排序)
    第一次遇到使用NSNull的场景
    NSURL使用浅析
    从CNTV下载《小小智慧树》
    NSDictionary and NSMutableDictionary
    Category in static library
  • 原文地址:https://www.cnblogs.com/lzjsky/p/15732237.html
Copyright © 2011-2022 走看看