第一步:引入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. POJ 1164 城堡问题【DFS/位运算/种子填充法/染色法】

    1 2 3 4 5 6 7 ############################# 1 # | # | # | | # #####---#####---#---#####---# 2 # # | ...

  2. CF 915 D 拓扑排序

    #include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 10; const int mod = 14285 ...

  3. 【单调队列】bzoj1047 [HAOI2007]理想的正方形

    先把整个矩阵处理成b[n][m-K+1].c[n][m-K+1]大小的两个矩阵,分别存储每行每K个数中的最大.最小值,然后再通过b.c处理出d.e分别表示K*K大小的子矩阵中的最大.最小值即可.单调队 ...

  4. [CodeChef-DGTCNT]Chef and Digits

    题目大意: 若一个十进制数$x$(不含前导零)满足数码$i$恰好出现$t_i$次,则这个数是坏的,否则是好的.求区间$[L,R](1\le L,R\le10^{18})$中有多少好数. 思路: 显然可 ...

  5. Spark IDEA 调试(反编译)

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

  6. Scala高手实战****第19课:Scala的包、继承覆写及Spark源码鉴赏

    1.SparkSession.scala //导入某个类 import scala.beans.Introspector //导入某包下所有的类 import scala.beans._ //导入某包 ...

  7. Scala实战高手****第4课:零基础彻底实战Scala控制结构及Spark源码解析

    1.环境搭建 基础环境配置 jdk+idea+maven+scala2.11.以上工具安装配置此处不再赘述. 2.源码导入 官网下载spark源码后解压到合适的项目目录下,打开idea,File-&g ...

  8. 【iOS微博客户端开发】1、微博整体项目的构建

    回顾自己做过的项目,总结里面的知识点,分享自己参照WXHL的视频开发的一个模拟微博客户端的过程,为了还在IOS上找不到项目参考的朋友,这里会由一系列手把手的教程,如有不足,还希望可以抖抖小手,献上您宝 ...

  9. 【java】服务器端获取用户访问的URL/用户IP/PC还是移动端

    @RequestMapping(value="/test") @ResponseBody public void test1(HttpServletRequest request, ...

  10. SqlServer_删除重复行只保留一条记录

      前提:相同的数据重复往数据库写入,导致存在仅主键Id不同的重复数据,现在需要去除重复数据,仅保留重复数据中Id最大的一条   思路: 1.找出存在重复数据的记录,并取重复数据中最大的Id值 2.删 ...