郑州网站托管助企,秦皇岛海三建设怎么样,东莞诚信通代运营,搜索引擎排名规则Apache log4net 库是一个帮助程序员将日志语句输出到各种输出目标的工具。log4net 是优秀的 Apache log4j™ 框架到 Microsoft .NET 运行时的端口。
我喜欢他可以自定义输出#xff0c;区分等级等特点。
导入库
我们在工程里添加NuGet的包。输入名称log4net #xff0…Apache log4net 库是一个帮助程序员将日志语句输出到各种输出目标的工具。log4net 是优秀的 Apache log4j™ 框架到 Microsoft® .NET 运行时的端口。
我喜欢他可以自定义输出区分等级等特点。
导入库
我们在工程里添加NuGet的包。输入名称log4net 导入包。
创建配置文件
然后我们在项目根创建一个配置文件log4net.config
?xml version1.0 encodingutf-8?
log4net!-- 将日志以回滚文件的形式写到文件中 --!-- 按日期切分日志文件并将日期作为日志文件的名字 --!--Error--appender nameErrorLog typelog4net.Appender.RollingFileAppender!--不加utf-8编码格式中文字符将显示成乱码--param nameEncoding valueutf-8 /file valueLog//appendToFile valuetrue /rollingStyle valueDate /!--日期的格式每天换一个文件记录如不设置则永远只记录一天的日志需设置--datePattern valuequot;ErrorLogs_quot;yyyyMMddquot;.logquot; /!--日志文件名是否为静态--StaticLogFileName valuefalse/!--多线程时采用最小锁定--lockingModel typelog4net.Appender.FileAppenderMinimalLock /!--布局向用户显示最后经过格式化的输出信息--layout typelog4net.Layout.PatternLayoutconversionPattern value%date| %-5level %newline%message%newline--------------------------------%newline //layoutfilter typelog4net.Filter.LevelRangeFilterlevelMin valueWARN /levelMax valueFATAL //filter/appender!--Error--!--Info--appender nameInfoLog typelog4net.Appender.RollingFileAppender!--不加utf-8编码格式中文字符将显示成乱码--param nameEncoding valueutf-8 /!--定义文件存放位置--file valueLog//appendToFile valuetrue /rollingStyle valueDate /!--日志文件名是否为静态--StaticLogFileName valuefalse/!--日期的格式每天换一个文件记录如不设置则永远只记录一天的日志需设置--datePattern valuequot;InfoLogs_quot;yyyyMMddquot;.logquot; /!--多线程时采用最小锁定--lockingModel typelog4net.Appender.FileAppenderMinimalLock /!--布局向用户显示最后经过格式化的输出信息--layout typelog4net.Layout.PatternLayoutconversionPattern value%date| %-5level%c %newline%message%newline--------------------------------%newline //layoutfilter typelog4net.Filter.LevelRangeFilterlevelMin valueINFO /levelMax valueINFO //filter/appender!--Info--!--Info--appender nameDebugLog typelog4net.Appender.RollingFileAppender!--不加utf-8编码格式中文字符将显示成乱码--param nameEncoding valueutf-8 /!--定义文件存放位置--file valueLog//appendToFile valuetrue /rollingStyle valueDate /!--日志文件名是否为静态--StaticLogFileName valuefalse/!--日期的格式每天换一个文件记录如不设置则永远只记录一天的日志需设置--datePattern valuequot;DebugLogs_quot;yyyyMMddquot;.logquot; /!--多线程时采用最小锁定--lockingModel typelog4net.Appender.FileAppenderMinimalLock /!--布局向用户显示最后经过格式化的输出信息--layout typelog4net.Layout.PatternLayoutconversionPattern value%date| %-5level%c %newline%message%newline--------------------------------%newline //layoutfilter typelog4net.Filter.LevelRangeFilterlevelMin valueDEBUG /levelMax valueDEBUG //filter/appender!--Info--root!-- 控制级别由低到高ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF --!-- 比如定义级别为INFO则INFO级别向下的级别比如DEBUG日志将不会被记录 --!-- 如果没有定义LEVEL的值则缺省为DEBUG --level valueALL /!-- 按日期切分日志文件并将日期作为日志文件的名字 --appender-ref refErrorLog /appender-ref refInfoLog /appender-ref refDebugLog //root
/log4net使用类
我们创建一个单独的类来使用他。
using log4net;namespace MMCEngine
{internal class Loger{readonly static ILog logger LogManager.GetLogger( MMCEngine );public Loger() {Thread.CurrentThread.Name main;//为了让主线程名显示string path ../../../log4net.config;FileInfo file new FileInfo(path);log4net.Config.XmlConfigurator.Configure(file);Console.WriteLine(loger);}public static void Debug(string str){Console.WriteLine(DateTime.Now.ToString(yyyy-mm-dd HH:MM:ss) DEBUG: str);logger.Debug(str);}public static void Info(string str){Console.WriteLine(DateTime.Now.ToString(yyyy-mm-dd HH:MM:ss) INFO: str);logger.Info(str);}public static void Warn(string str){Console.WriteLine(DateTime.Now.ToString(yyyy-mm-dd HH:MM:ss) WARN: str);logger.Warn(str);}public static void Error(string str){Console.WriteLine(DateTime.Now.ToString(yyyy-mm-dd HH:MM:ss) ERROR: str);logger.Error(str);}}
}
使用
在Program.cs中
new Loger();
// 调用Python脚本的Test函数
Loger.Info(info1);
Loger.Info(info2);
Loger.Debug(Debug3);
Loger.Warn(Warn4);
Loger.Error(err5);我们可以根据配置文件来生成不同的Log配置文件里我分为了3个等级。
参考
https://www.cnblogs.com/netcore5/articles/14611567.html