VS2017-NetCore项目整合Log4Net

Posted luckypc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2017-NetCore项目整合Log4Net相关的知识,希望对你有一定的参考价值。

1新建NetCore项目,我这里NetCoreSDK版本是2.2.0。

2.进入NuGet程序包官网 : https://www.nuget.org,搜索以下两个包并安装到项目中。

 Microsoft.Extensions.Logging.Log4Net.AspNetCore

 Log4Net

 

打开项目的程序包管理控制台,运行以下两条命令,安装Log4Net到项目中

 

a、Install-Package Microsoft.Extensions.Logging.Log4Net.AspNetCore -Version 2.2.10
b、Install-Package log4net -Version 2.0.8
 
3、项目新建一个目录,新增一个log4net.config的配置文件。
技术图片

config内容如下。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <!-- This section contains the log4net configuration settings -->
  <log4net>
    <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
    <!-- Set root logger level to ERROR and its appenders -->
    <root>
      <level value="ALL"/>
      <appender-ref ref="SysAppender"/>
    </root>
    <!-- Print only messages of level DEBUG or above in the packages -->
    <logger name="WebLogger">
      <level value="DEBUG"/>
    </logger>
    
    <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net" >
      <param name="File" value="Content/Logs/" />
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
      <param name="StaticLogFileName" value="false" />
      <layout type="log4net.Layout.PatternLayout,log4net">
      <param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n日 志 类:%c [%L] %n%m %n" />
        <param name="Header" value="&#13;&#10;----------------------Header--------------------------&#13;&#10;" />
        <param name="Footer" value="&#13;&#10;----------------------Footer--------------------------&#13;&#10;" />
      </layout>
    </appender>
    
      
    <appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
    </appender>
  </log4net>

</configuration>

 

4、在Startup.cs中的配置如下

        ...

     public static log4net.Repository.ILoggerRepository LogRepository { get; set; } public Startup(IConfiguration configuration) { Configuration = configuration; LogRepository = log4net.LogManager.CreateRepository("NetCoreRepository"); log4net.Config.XmlConfigurator.Configure(LogRepository, new FileInfo(@"Config\\log4net.config")); }
    ...

 

5、新建一个Core文件夹,增加一个Log4Net.cs的日志帮助类

技术图片

using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace CMSCore.Web.Core
{
    public class Log4Net
    {
        private static ILog log;
        static Log4Net()
        {
            log = LogManager.GetLogger(Startup.LogRepository.Name,typeof(Log4Net));
        }
        public static void Info(string message)
        {
            log.Info(message);
        }

        public static void Warn(string message)
        {
            log.Warn(message);
        }
        public static void Warn(string message,Exception ex)
        {
            log.Warn(message,ex);
        }

        public static void Error(string message)
        {
            log.Error(message);
        }
        public static void Error(string message,Exception ex)
        {
            log.Error(message,ex);
        }

        public static void Debug(string message)
        {
            log.Debug(message);
        }
        public static void Debug(string message, Exception ex)
        {
            log.Debug(message, ex);
        }

    }
}

6、在项目中需要记录日志的类引用该命名空间,即可在项目中使用log4net的类的方法记录日志了。

 

 

以上是关于VS2017-NetCore项目整合Log4Net的主要内容,如果未能解决你的问题,请参考以下文章

[VS] [C#] 替项目加入 log4net 吧~

无法在 VS 2017 .NET Core 上启用 Entity Framework 迁移

VS 2017 .Net Core 2.0 控制台应用程序发布失败

net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)一建立项目,使用Swagger

net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)一建立项目,使用Swagger

net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)一建立项目,使用Swagger