当前位置:网站首页>C#使用log4net插件,输出日志到文件
C#使用log4net插件,输出日志到文件
2022-07-26 06:40:00 【木苏栀槿】
一天一个日志文件,其中包含时间,日志等级,类型,信息
日志输出样式:

在Visual Studio中Nuget包管理中搜索下载并 log4Net 插件

使用 log4net需要自己配置log4net的配置文件,目前,配置文件是用 XML 编写的。一般有两种方式,一种是使用log4net自动生成的 “log4net.xml”进行配置,另一种是直接嵌入到运行程序的 app.config 文件中。
在创建log4net.xml后需要在文件属性中设置复制输出目录:始终复制
日志才会输出到xml中指定的文件夹下

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
<appender-ref ref="ColoredConsoleAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="logs/cmm.log" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%02thread] %-5level %logger: %message%newline" />
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置-->
<file value="Log\\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd'.txt'" />
<staticLogFileName value="false" />
<param name="MaxSizeRollBackups" value="100" />
<layout type="log4net.Layout.PatternLayout">
<!--每条日志末尾的文字说明-->
<!--输出格式-->
<!--样例:2008-03-26 13:42:32,111 [10] INFO MainClass - info-->
<conversionPattern value="%newline%date [%thread] [%-5level] [%logger] :%message" />
</layout>
</appender>
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="ERROR" />
<foreColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="Warn" />
<foreColor value="Yellow,HighIntensity" />
</mapping>
<mapping>
<level value="Info" />
<foreColor value="White" />
</mapping>
<mapping>
<level value="Debug" />
<foreColor value="Purple, HighIntensity" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger: %message%newline" />
</layout>
</appender>
</log4net>再添加一个Log日志工具类,自定义输出内容格式
using log4net;
using System;
namespace Log4net
{
public static class Log
{
private static ILog log;
public static void Init(string name)
{
log = LogManager.GetLogger(name);
}
public static void Info(object message)
{
log.Info(message);
}
public static void InfoFormat(string format, object arg0)
{
log.InfoFormat(format, arg0);
}
public static void InfoFormat(string format, object arg0, object arg1)
{
log.InfoFormat(format, arg0, arg1);
}
public static void InfoFormat(string format, object arg0, object arg1, object arg2)
{
log.InfoFormat(format, arg0, arg1, arg2);
}
public static void InfoFormat(string format, params object[] args)
{
log.InfoFormat(format, args);
}
public static void Warning(object message)
{
log.Warn(message);
}
public static void WarningFormat(string format, object arg0)
{
log.WarnFormat(format, arg0);
}
public static void WarningFormat(string format, object arg0, object arg1)
{
log.WarnFormat(format, arg0, arg1);
}
public static void WarningFormat(string format, object arg0, object arg1, object arg2)
{
log.WarnFormat(format, arg0, arg1, arg2);
}
public static void WarningFormat(string format, params object[] args)
{
log.WarnFormat(format, args);
}
public static void Error(object message)
{
log.Error(message);
}
public static void ErrorFormat(string format, object arg0)
{
log.ErrorFormat(format, arg0);
}
public static void ErrorFormat(string format, object arg0, object arg1)
{
log.ErrorFormat(format, arg0, arg1);
}
public static void ErrorFormat(string format, object arg0, object arg1, object arg2)
{
log.ErrorFormat(format, arg0, arg1, arg2);
}
public static void ErrorFormat(string format, params object[] args)
{
log.ErrorFormat(format, args);
}
public static void Fatal(object message)
{
log.Fatal(message);
}
public static void FatalFormat(string format, object arg0)
{
log.FatalFormat(format, arg0);
}
public static void FatalFormat(string format, object arg0, object arg1)
{
log.FatalFormat(format, arg0, arg1);
}
public static void FatalFormat(string format, object arg0, object arg1, object arg2)
{
log.FatalFormat(format, arg0, arg1, arg2);
}
public static void FatalFormat(string format, params object[] args)
{
log.FatalFormat(format, args);
}
}
}
在代码运行时需初始化
using System.IO;
public class Program
{
static void Main(string[] args)
{
FileInfo fi = new FileInfo("log4net.xml");
log4net.Config.XmlConfigurator.ConfigureAndWatch(fi);
Log.Init("初始化日志插件!");
Log.Info("输出日志信息!");
}
}日志插件
边栏推荐
- [day_050422] continuous maximum sum
- Summary of common usage of dev treelist
- [image denoising] image denoising based on bicube interpolation and sparse representation matlab source code
- 『牛客|每日一题』模板栈
- YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
- Basis of multimodal semantic segmentation
- Uitoolkit tool template project
- 7. Reverse Integer整数反转
- JVM class loading and GC garbage collection mechanism
- 【图像隐藏】基于混合 DWT-HD-SVD 的数字图像水印方法技术附matlab代码
猜你喜欢

BPG笔记(四)

【无标题】

Uitoolkit tool template project

Why the server is stuck

IP day 10 notes - BGP
![[pytorch] picture enlargement](/img/79/2eeefcb4623156f65957d78997e138.jpg)
[pytorch] picture enlargement
![[day05_0422] C language multiple choice questions](/img/cb/0019ec819480bd9f52055e726b323a.png)
[day05_0422] C language multiple choice questions

Code runner for vs code, with more than 40million downloads! Support more than 50 languages

YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors

带你搞透IO多路复用原理(select、poll和epoll)
随机推荐
【C语言】文件操作
Alibaba cloud OSS binding custom domain name
C language introduction practice (7): switch case calculation of days in the year (normal year / leap year calculation)
Conda 虚拟环境envs目录为空
Decomposing a positive integer into prime factors requires decomposing into as many factors as possible.
源代码加密技术发展阶段
Summary of common usage of dev treelist
【毕业季_进击的技术er】送别过去两年迷茫的自己。重整旗鼓,大三我来啦
『牛客|每日一题』点击消除
Heap sort
[C language] address book dynamic version and document version
Address resolution ARP Protocol
Open includeexceptiondetailinfaults on the server (from servicebehaviorattribute or from & lt; servicedebug & gt; to configure behavior) to send exception information back
力扣5: 最长回文子串
Advanced C language - archived address book (file)
数据库中varchar和Nvarchar区别与联系
Gdown Access denied:Cannot retrieve the public link of the file.
Map集合继承结构
原生高性能抓包工具Proxyman,送给爱学习的你
[C language] file operation