欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

VS2017-NetCore项目整合Log4Net

程序员文章站 2022-07-11 08:20:11
1新建NetCore项目,我这里NetCoreSDK版本是2.2.0。 2.进入NuGet程序包官网 : https://www.nuget.org,搜索以下两个包并安装到项目中。 Microsoft.Extensions.Logging.Log4Net.AspNetCore 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的配置文件。
VS2017-NetCore项目整合Log4Net

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的日志帮助类

VS2017-NetCore项目整合Log4Net

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的类的方法记录日志了。