第一步:引入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. 用JDBC操作MySQL——大量数据库操作时使用批处理提速

    之前所有的操作由于数据量很小,所以没有进行批处理的优化,性能也没有出现明显的恶化,但是随着我用java处理数据量的大幅提高,频繁使用静态SQL语句的方法严重降低了处理效率,这里总结一下JDBC批处理的 ...

  2. cogs 服务点设置

    3. 服务点设置 ☆   输入文件:djsa.in   输出文件:djsa.out   简单对比时间限制:1 s   内存限制:128 MB 问题描述为了进一步普及九年义务教育,政府要在某乡镇建立一所 ...

  3. POJ1386Play on Words(欧拉回路)

                                                             Play on Words Time Limit: 1000MS   Memory L ...

  4. [CTSC2017]密钥

    传送门:http://uoj.ac/problem/297 “无论哪场比赛,都要相信题目是水的” 这不仅是HNOI2018D2T3的教训,也是这题的教训,思维定势真的很可怕. 普及组水题,真是愧对CT ...

  5. Spark IDEA 调试(反编译)

    1)以WordCount为例,具体代码如下: import org.apache.spark.SparkConf import org.apache.spark.SparkContext; impor ...

  6. Java使用POM一JAR包的形式管理JavaScript文件-WebJars

    说明:原来JS框架还可以使用POM进行管理的.WebJars是一个很神奇的东西,可以让大家以JAR包的形式来使用前端的各种框架.组件. 什么是WebJars 什么是WebJars?WebJars是将客 ...

  7. Java下String和List<String>的互相转换

    // List转换为String数组 List<String> list = new ArrayList<String>(); list.add("a1") ...

  8. 网络抓包工具Wireshark和Fidder

    http://fangxin.blog.51cto.com/1125131/735178 http://blog.csdn.net/jiangwei0910410003/article/details ...

  9. JS面向对象之作用域

    作用域 词法作用域 作用域 域表示的就是范围,即作用范围 就是一个名字在什么地方能使用,在什么地方不能使用 块级作用域 块级别的作用范围 // 在 c , java 等编程语言中,下面的语法报错 { ...

  10. 【翻译】自定义 UIViewController Transitions

    原文地址:http://www.shinobicontrols.com/blog/posts/2013/10/03/ios7-day-by-day-day-10-custom-uiviewcontro ...