[Solution] 1分钟使用log4net
log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具
官网:http://logging.apache.org/log4net/index.html
安装:Install-Package log4net
1.复制log4net.xml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | < log4net > < appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--日志文件名开头--> < file value="Logs/project.log" /> <!--是否追加到文件--> < appendToFile value="true" /> <!--混合使用日期和文件大小变换日志文件名--> < rollingStyle value="Composite" /> <!--日期的格式--> < datePattern value="yyyyMMdd" /> <!--最大变换数量--> < maxSizeRollBackups value="30" /> <!--最大文件大小--> < maximumFileSize value="1MB" /> < layout type="log4net.Layout.PatternLayout"> < conversionPattern value="%d [%t] %-5p %m - [%F:%L]%n" /> </ layout > </ appender > < appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> < layout type="log4net.Layout.PatternLayout"> < conversionPattern value="%d [%t] %-5p %m%n" /> </ layout > </ appender > < root > < level value="DEBUG"></ level > < appender-ref ref="RollingLogFileAppender"></ appender-ref > <!--<appender-ref ref="ConsoleAppender"></appender-ref>--> </ root > </ log4net > |
2.初始化,读入配置
var path = Server.MapPath("~/log4net.xml");
log4net.Config.XmlConfigurator.Configure(new FileInfo(path));
3.使用,可以更改配置文件log4net.config自己配置
方式一:log4net.LogManager.GetLogger(GetType());
方式二:log4net.LogManager.GetLogger("logger-name");
方式三:LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
配置说明
[level]
包括ROOT在内的每一个LOGGER(ROOT也是一个LOGGER,只不过,他是祖先而已,别的方面,跟其他LOGGER一样),都可以定义Level
level定义记录的日志级别,就是说,你要记录哪个级别以上的日志,级别由高往低依次是:
None
Fatal
ERROR
WARN
DEBUG
INFO
ALL
[layout]
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称,例如:
%L:输出语句所在的行号
%F:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充
扩展:
也可以直接在*.config添加以下节点,这样初始化配置的时候无需传参配置
1 2 3 | <configSections> <section name= "log4net" type= "log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> |
参考:
http://logging.apache.org/log4net/release/manual/configuration.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义