第一步:引入Log4net.dll 文件的引用

第二步:添加LogHelper类,代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using log4net; namespace DemoLog4net
{
/// <summary>
/// 日志等级
/// </summary>
public enum LogLevel
{
Error,
Debug,
Warning,
Info
}
/// <summary>
/// 日志类型
/// </summary>
public enum LogType
{
AppLog,
ErrorLog,
DebugLog,
OtherLog
}
/// <summary>
/// 单例模式初始化
/// </summary>
public class Singleton
{
private ILog Log;
private static Singleton instance;
private Singleton() { }
public static Singleton getInstance()
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
/// <summary>
/// 获取日志初始化器
/// </summary>
/// <param name="logType"></param>
/// <returns></returns>
public ILog Init(LogType logType)
{
string s = logType.ToString();
Log = LogManager.GetLogger(s);
return Log;
}
}
/// <summary>
/// 日志操作类
/// </summary>
public class LogHelper
{
/// <summary>
/// 输出Erro日志
/// </summary>
/// <param name="logType"></param>
/// <param name="message"></param>
public static void Error(LogType logType, string message)
{
WriteLog(logType, LogLevel.Error, message);
}
/// <summary>
/// 输出Warning日志
/// </summary>
/// <param name="logType"></param>
/// <param name="message"></param>
public static void Warning(LogType logType, string message)
{
//记录日志
WriteLog(logType, LogLevel.Warning, message);
}
/// <summary>
/// 输出Info日志
/// </summary>
/// <param name="logType"></param>
/// <param name="message"></param>
public static void Info(LogType logType, string message)
{
//记录日志
WriteLog(logType, LogLevel.Info, message);
}
public static void Debug(LogType logType, string message)
{
//记录日志
WriteLog(logType, LogLevel.Debug, message);
}
/// <summary>
/// 写日志
/// </summary>
/// <param name="logType"></param>
/// <param name="logLevel"></param>
/// <param name="message"></param>
private static void WriteLog(LogType logType, LogLevel logLevel, string message)
{
ILog Log = Singleton.getInstance().Init(logType);
switch (logLevel)
{
case LogLevel.Debug:
Log.Debug(message);
break;
case LogLevel.Error:
Log.Error(message);
break;
case LogLevel.Info:
Log.Info(message);
break;
case LogLevel.Warning:
Log.Warn(message);
break;
} }
}
}

第三步:添加配置文件Log4net.config文件 ,记得将此文件的【复制到输出目录 】设置复制

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections>
<appSettings>
</appSettings>
<log4net>
<!--一般信息日志-->
<appender name="AppLog" type="log4net.Appender.RollingFileAppender">
<file value="Log/AppLog/" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<datePattern value="yyyyMMdd&quot;.log&quot;" />
<layout type="log4net.Layout.PatternLayout">
<!--输出格式-->
<conversionPattern value="%date %-5level %message%newline" />
</layout>
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="AppLog" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<!--严重错误日志-->
<appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
<file value="Log/ErrorLog/" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<datePattern value="yyyyMMdd&quot;.log&quot;" />
<layout type="log4net.Layout.PatternLayout">
<!--输出格式-->
<conversionPattern value="%date %-5level %message%newline" />
</layout>
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="ErrorLog" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<!--调试日志-->
<appender name="DebugLog" type="log4net.Appender.RollingFileAppender">
<file value="Log/DebugLog/" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<datePattern value="yyyyMMdd&quot;.log&quot;" />
<layout type="log4net.Layout.PatternLayout">
<!--输出格式-->
<conversionPattern value="%date %-5level %message%newline" />
</layout>
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="DebugLog" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender> <!--其他信息日志-->
<appender name="OtherLog" type="log4net.Appender.RollingFileAppender">
<file value="Log/OtherLog/" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<datePattern value="yyyyMMdd&quot;.log&quot;" />
<layout type="log4net.Layout.PatternLayout">
<!--输出格式-->
<conversionPattern value="%date %-5level %message%newline" />
</layout>
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="OtherLog" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="AppLog"/>
<appender-ref ref="ErrorLog"/>
<appender-ref ref="DebugLog"/>
<appender-ref ref="OtherLog"/>
</root>
</log4net>
</configuration>

第五步:在AssemblyInfo.cs文件中添加

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net_dcs.config", Watch = true)]

Log4net 根据日志类型输出日志的更多相关文章

  1. log4net的分类型输出文件的配置

    <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSe ...

  2. tomcat的日志不输出日志信息的解决方法

    1.下载日志jar包,例如:commons-logging-1.1.1.jar.放在tomcat的bin目录下,或者是自己项目的lib包里. 2.修改tomcat的bin目录下面的catalina.b ...

  3. Spring Boot 使用 Log4j2 & Logback 输出日志到 EKL

    文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK ...

  4. SpringBoot使用logback输出日志并打印sql信息 --经典---

    最近在学习springboot以及一些springcloud插件的使用,其中发现默认的配置并不能打印一些有用的日志,所以需要自定义一些日志输出方式以便于查看日志排查问题,目前只整理了两种使用方式,如下 ...

  5. log4j不输出日志错误分析

    1.rootLogger不输出 代码如下: 配置文件代码: log4j.rootLogger=info, R,userLog log4j.appender.R=org.apache.log4j.Rol ...

  6. (六)Net Core项目使用Controller之一 c# log4net 不输出日志 .NET Standard库引用导致的FileNotFoundException探究 获取json串里的某个属性值 common.js 如何调用common.js js 筛选数据 Join 具体用法

    (六)Net Core项目使用Controller之一 一.简介 1.当前最流行的开发模式是前后端分离,Controller作为后端的核心输出,是开发人员使用最多的技术点. 2.个人所在的团队已经选择 ...

  7. .net core 中使用Log4net输出日志到Mysql数据库中

    .net core 中使用Log4net输出日志到数据库中去 1.使用Nuget安装log4net 和 mysql.data 2.设置log4net 的配置文件 log4net.config 可以设置 ...

  8. log4net 按时间输出日志

    参考:(转)非常完善的Log4net详细说明 log4net 按天与按小时记日志的配置 Log4net 中输出日志到文件,文件名根据日期生成 log4net按日志级别(debug,info,warn, ...

  9. C# log4net 不输出日志

    一个新项目,直接用了一些之前的代码,突然跟踪不到日志了.检查发现了原因,特在此记录. log4net的配置文件log4net_config.xml <?xml version="1.0 ...

随机推荐

  1. [centos6.5] yum makecache 连接错误的解决办法

    http://mirrors.163.com/.help/centos.html 访问这个就懂了

  2. 记一次对python反弹shell的分析

    前言 昨天学习了反弹shell,对python弹shell产生了一些疑惑 python -c 'import socket,subprocess,os;s=socket.socket(socket.A ...

  3. POJ 1094 Sorting It All Out【拓扑排序 / 比较字母大小】

    Sorting It All Out Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 38100 Accepted: 13453 ...

  4. UVALive 5097 Cross the Wall

    贪心思想,$dp$,斜率优化. 首先将人按照$w$从大到小排序,如果$w$一样,按$h$从大到小排.这样一来,某位置之后,比该位置$h$小的都是不需要考虑的. 因此,形成了如下图所示的结果: 即第一个 ...

  5. POJ1251 Jungle Roads(Kruskal)(并查集)

    Jungle Roads Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 23882   Accepted: 11193 De ...

  6. 1、Django实战第1天:建立项目mxonline

    工具版本: python3.6.3 django1.9.8 安装工具 mkvirtualenv --python="C:\Python36\python.exe" mxonline ...

  7. 为何jsp 在resin下乱码,但在tomcat下却工作良好的问题

    关于JSP页面中的pageEncoding和contentType两种属性的区别:       pageEncoding是jsp文件本身的编码       contentType的charset是指服 ...

  8. python3 开发面试题(装饰器必须考)6.4

    def f(): print("2018-06-04") # 每次调用f的时候 在打印"2018-06-04" 之前打印一句 开始, 之后再打印一句 结束 de ...

  9. 上传ipa文件时报错 Your account already has a valid iOS distribution certificate

    这个问题是因为你本机的生产证书是在别人的电脑上创建的,所以才会提示你已经有一个有效的生产证书,但是没有安装到本地:

  10. WPF在代码中创建DataTemplate时候的异常

    今天写段程序用到了在代码中手动创建DataTemplate, var factory = new FrameworkElementFactory(typeof(OperationColumn));   ...