Log4net 根据日志类型输出日志
第一步:引入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".log"" />
<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".log"" />
<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".log"" />
<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".log"" />
<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 根据日志类型输出日志的更多相关文章
- log4net的分类型输出文件的配置
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSe ...
- tomcat的日志不输出日志信息的解决方法
1.下载日志jar包,例如:commons-logging-1.1.1.jar.放在tomcat的bin目录下,或者是自己项目的lib包里. 2.修改tomcat的bin目录下面的catalina.b ...
- Spring Boot 使用 Log4j2 & Logback 输出日志到 EKL
文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK ...
- SpringBoot使用logback输出日志并打印sql信息 --经典---
最近在学习springboot以及一些springcloud插件的使用,其中发现默认的配置并不能打印一些有用的日志,所以需要自定义一些日志输出方式以便于查看日志排查问题,目前只整理了两种使用方式,如下 ...
- log4j不输出日志错误分析
1.rootLogger不输出 代码如下: 配置文件代码: log4j.rootLogger=info, R,userLog log4j.appender.R=org.apache.log4j.Rol ...
- (六)Net Core项目使用Controller之一 c# log4net 不输出日志 .NET Standard库引用导致的FileNotFoundException探究 获取json串里的某个属性值 common.js 如何调用common.js js 筛选数据 Join 具体用法
(六)Net Core项目使用Controller之一 一.简介 1.当前最流行的开发模式是前后端分离,Controller作为后端的核心输出,是开发人员使用最多的技术点. 2.个人所在的团队已经选择 ...
- .net core 中使用Log4net输出日志到Mysql数据库中
.net core 中使用Log4net输出日志到数据库中去 1.使用Nuget安装log4net 和 mysql.data 2.设置log4net 的配置文件 log4net.config 可以设置 ...
- log4net 按时间输出日志
参考:(转)非常完善的Log4net详细说明 log4net 按天与按小时记日志的配置 Log4net 中输出日志到文件,文件名根据日期生成 log4net按日志级别(debug,info,warn, ...
- C# log4net 不输出日志
一个新项目,直接用了一些之前的代码,突然跟踪不到日志了.检查发现了原因,特在此记录. log4net的配置文件log4net_config.xml <?xml version="1.0 ...
随机推荐
- Codeforces 1023 A.Single Wildcard Pattern Matching-匹配字符 (Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Fi)
Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) A. Single Wildcard Patter ...
- 二维字符数组利用gets()函数输入
举例: ][]; ;i<;i++) gets(a[i]); a是二维字符数组的数组名,相当于一维数组的指针, 所以a[i]就相当于指向第i个数组的指针,类型就相当于char *,相当于字符串.
- HDU 1015 Safecracker【数值型DFS】
Safecracker Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- floyed算法的一些感想
for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=k;j++) if(f[i][k]+f[k][j]<f[i ...
- 福州三中集训day1
第一天感觉很是不友好,好在我是学过搜索之后才听的课,不然估计得死在教室…. 某zld犇犇讲的很是强?今天主要是讲枚举和DFS,几道经典题目讲完,还没到下课时间, 然后讲起了float. 有空整理一下吧 ...
- Codeforces Round 252 (Div. 2)
layout: post title: Codeforces Round 252 (Div. 2) author: "luowentaoaa" catalog: true tags ...
- [Codeforces 17C] Balance
Brief Introduction: 给定一个仅由abc组成的字符串,每个字符可以向左右延展,求最终新的平衡字符串的个数. Algorithm: 关键点在于变换前后字符串中字符的相对位置不会发生改变 ...
- [SHOI2009] 交通网络
简单最短路计数. #include<bits/stdc++.h> #define ll long long using namespace std; #define D double co ...
- 【最短路】【Heap-Dijkstra】【分层图】bzoj2662 [BeiJing wc2012]冻结
裸的分层图最短路. #include<cstdio> #include<cstring> #include<queue> #include<algorithm ...
- 13test04:捕鱼
#include<iostream> using namespace std; int main() { int fish_sum,flag=1; for(fish_sum=6;flag; ...