ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱) 概述 Log4net在ASP.NET Core中的使用示例

此文转自:https://www.cnblogs.com/NetCode-chengyb/articles/12496811.html:置于最顶表示感激之情。

log4net是 Apache Software Foundation 的 Apache Logging Services 项目的一部分。Logging Services项目旨在提供跨语言的日志记录服务,以进行应用程序调试和审核。在本文中将在.NET Core3.1下配置Log4net,实现项目的日志记录。

Log4net官方地址:http://logging.apache.org/log4net/ ,有需要可以自行查看。

Log4net在ASP.NET Core中的使用示例

1.引入Nuget包

ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例

tip:只需引入图中其中一个即可,第二个包 Microsoft.Extensions.Logging.Log4Net.AspNetCore 为Log4Net的NetCore扩展包

2.添加Log4Net.config配置文件

ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例
ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  
  <!-- This section contains the log4net configuration settings -->
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="Log/" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <staticLogFileName value="false" />
      <datePattern value="yyyy-MM-dd'.log'" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date  [%thread]  %-5level  %message%newline" />
      </layout>
    </appender>

    <!-- Setup the root category, add the appenders and set the default level -->
    <root>
      <level value="ALL" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>

  </log4net>

</configuration>
ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例
View Code - log4net.config

tip:config文件需放置于项目根目录下,否则不起作用

3.添加Log4Net帮助类

ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例
ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例
    /// <summary>
    /// 日志帮助类
    /// </summary>
    public class LogHelper
    {
        private static readonly ILog logger;
        static LogHelper()
        {
            if (logger == null)
            {
                var repository = LogManager.CreateRepository("NETCoreRepository");

                XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));

                logger = LogManager.GetLogger(repository.Name, "InfoLogger");
            }
        }

        /// <summary>
        /// 普通日志
        /// </summary>
        /// <param name="message"></param>
        /// <param name="exception"></param>
        public static void Info(string message, Exception exception = null)
        {
            if (exception == null)
                logger.Info(message);
            else
                logger.Info(message, exception);
        }

        /// <summary>
        /// 告警日志
        /// </summary>
        /// <param name="message"></param>
        /// <param name="exception"></param>
        public static void Warn(string message, Exception exception = null)
        {
            if (exception == null)
                logger.Warn(message);
            else
                logger.Warn(message, exception);
        }

        /// <summary>
        /// 错误日志
        /// </summary>
        /// <param name="message"></param>
        /// <param name="exception"></param>
        public static void Error(string message, Exception exception = null)
        {
            if (exception == null)
                logger.Error(message);
            else
                logger.Error(message, exception);
        }
    }
ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例
View Code - LogHelper.cs

4.使用

你只需要在项目中任意地方,通过以下代码调用即可:

  • LogHelper.Info("test Info log");       //普通日志
  • LogHelper.Warn("test Warn log");     //告警日志
  • LogHelper.Error("test Error log");   //错误日志

4.附上我的项目文件截图

ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例

log4net是 Apache Software Foundation 的 Apache Logging Services 项目的一部分。Logging Services项目旨在提供跨语言的日志记录服务,以进行应用程序调试和审核。在本文中将在.NET Core3.1下配置Log4net,实现项目的日志记录。

Log4net官方地址:http://logging.apache.org/log4net/ ,有需要可以自行查看。

Log4net在ASP.NET Core中的使用示例

1.引入Nuget包

ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例

tip:只需引入图中其中一个即可,第二个包 Microsoft.Extensions.Logging.Log4Net.AspNetCore 为Log4Net的NetCore扩展包

2.添加Log4Net.config配置文件

ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例
ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  
  <!-- This section contains the log4net configuration settings -->
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="Log/" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <staticLogFileName value="false" />
      <datePattern value="yyyy-MM-dd'.log'" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date  [%thread]  %-5level  %message%newline" />
      </layout>
    </appender>

    <!-- Setup the root category, add the appenders and set the default level -->
    <root>
      <level value="ALL" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>

  </log4net>

</configuration>
ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例
View Code - log4net.config

tip:config文件需放置于项目根目录下,否则不起作用

3.添加Log4Net帮助类

ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例
ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例
    /// <summary>
    /// 日志帮助类
    /// </summary>
    public class LogHelper
    {
        private static readonly ILog logger;
        static LogHelper()
        {
            if (logger == null)
            {
                var repository = LogManager.CreateRepository("NETCoreRepository");

                XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));

                logger = LogManager.GetLogger(repository.Name, "InfoLogger");
            }
        }

        /// <summary>
        /// 普通日志
        /// </summary>
        /// <param name="message"></param>
        /// <param name="exception"></param>
        public static void Info(string message, Exception exception = null)
        {
            if (exception == null)
                logger.Info(message);
            else
                logger.Info(message, exception);
        }

        /// <summary>
        /// 告警日志
        /// </summary>
        /// <param name="message"></param>
        /// <param name="exception"></param>
        public static void Warn(string message, Exception exception = null)
        {
            if (exception == null)
                logger.Warn(message);
            else
                logger.Warn(message, exception);
        }

        /// <summary>
        /// 错误日志
        /// </summary>
        /// <param name="message"></param>
        /// <param name="exception"></param>
        public static void Error(string message, Exception exception = null)
        {
            if (exception == null)
                logger.Error(message);
            else
                logger.Error(message, exception);
        }
    }
ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例
View Code - LogHelper.cs

4.使用

你只需要在项目中任意地方,通过以下代码调用即可:

  • LogHelper.Info("test Info log");       //普通日志
  • LogHelper.Warn("test Warn log");     //告警日志
  • LogHelper.Error("test Error log");   //错误日志

4.附上我的项目文件截图

ASP.NET Core3.1关于Microsoft.Extensions.Logging.Log4Net.AspNetCore(非web,本人用于控制台程序——靠谱)
概述
Log4net在ASP.NET Core中的使用示例