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=" ----------------------Header-------------------------- " />
<param name="Footer" value=" ----------------------Footer-------------------------- " />
</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的更多相关文章

  1. .netcore 整合 log4net

    1.背景 前两天,曾经的一个同事咨询我,怎样将log4net以中间件的形式整合到core里边去.我不假思索的回答,这种问题应该有人做过吧,他说没有.于是,我去博客园搜了下,发现还真没有,全部都是传统. ...

  2. 在Winform项目和Web API的.NetCore项目中使用Serilog 来记录日志信息

    在我们常规的调试或者测试的时候,喜欢把一些测试信息打印在控制台或者记录在文件中,对于.netframework项目来说,我们输出控制台的日志信息习惯的用Console.WriteLine来输出查看,不 ...

  3. IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题

    IT咨询顾问:一次吐血的项目救火   年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...

  4. 第八节:Asp.Net Core整合Log4net(官方的、微软的两种)

    一. 整合Log4net 1. 简单说明 对于log4net 官方的程序集而言,从2.0.7开始就支持.Net Core了,这里我们采用的是2.0.8,虽然好久没更新了,但不影响使用.Core版本与普 ...

  5. dotnet跨平台 - 使用Nginx+Docker Compose运行.NETCore项目

    参考文档: https://docs.docker.com/install/linux/docker-ce/centos/ http://www.dockerinfo.net/document htt ...

  6. PMP 第四章 项目整合管理

    1.什么是整合管理,整合什么?如何整合?    项目整合管理包括识别 定义 组合 统一与协调项目管理过组的个过程及项目管理活动二进行的各种过程和活动.    整合兼具统一 合并 连接和一体化的性质,对 ...

  7. Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合(注解及源码)

    Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合(注解及源码) 备注: 之前在Spring3 + Spring MVC+ Mybatis 3+Mysql 项目整合中 ...

  8. 实战突击: Java Web项目整合开发(PDF)

    实战突击:  Java  Web项目整合开发(PDF)

  9. SSM项目整合基本步骤

    SSM项目整合 1.基本概念 1.1.Spring Spring 是一个开源框架, Spring 是于 2003  年兴起的一个轻量级的 Java  开发框架,由 Rod Johnson  在其著作  ...

随机推荐

  1. ListView(4)取消GridView/ListView item被点击时的效果

    方法一,在代码中设置 gridView.setSelector(new ColorDrawable(Color.TRANSPARENT)); listView.setSelector(new Colo ...

  2. ASP.NET 之页面重定向和传值

    在开发 ASP.NET 网站时,经常需要从一个网页重定向(导航)到另一个网页,同时希望能够将信息从源页传递到目标页.例如,如果你正在开发一个保险网站,需要用一个页面来收集基本信息(用户信息.保险产品信 ...

  3. 微信开发解决if...else..的臃肿

    开发中难以避免if...else (switch case ),大量的if...else 让代码可读性低...难以维护 无论是接手别人的代码还是自己写的代码,因为开发周期短可能就往往忽略了这一点. 久 ...

  4. Selenium基于Python web自动化基础一 -- 基础汇总及简单操作

    Selenium是UI层WEB端的自动化测试框架,也是目前市面上比较流行的自动化测试框架. ui层自动化测试本质是什么?模拟用户的真实操作行为. 基础汇总: 导入所需要的模块 from seleniu ...

  5. 360 你妈妈知道你跟Python存在兼容问题吗?

    最近在用Python2.7.6版本开发的的过程中发现了一个问题 提示:UnicodeDecodeError:'ascii' codec can't decode bytes 0xb0 刚开始以为是编码 ...

  6. iOS设计模式——Category和 Extension

    什么是Category Category模式用于向已经存在的类添加方法从而达到扩展已有类的目的,在很多情形下Category也是比创建子类更优的选择.新添加的方法同样也会被被扩展的类的所有子类自动继承 ...

  7. HTML——meta

    http://www.cnblogs.com/jr1993/p/4542862.html

  8. (转)Hibernate框架基础——映射集合属性

    http://blog.csdn.net/yerenyuan_pku/article/details/52745486 集合映射 集合属性大致有两种: 单纯的集合属性,如像List.Set或数组等集合 ...

  9. PHP数据乱码

    本文主要总结下PHP数据乱码的解决方案 要点:多个不同文件系统里一定要统一编码 [注意] (1)HTML编码与MySQL编码一致: (2)PHP编码与MySQL编码一致: (3)header头发送字符 ...

  10. orb slam2