Log4net_简单使用
log4net 有四种主要的组件,分别是Logger(记录器), Repository(库), Appender(附着器)以及 Layout(布局).
第一步:Log4net的安装
Install-Package log4net
第二步:Log4net的配置
log4net.config
注意:将log4net.config的属性“复制到输出目录”设置为“始终复制”
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | <?xml version= "1.0" encoding= "utf-8" ?> <configuration> <configSections> <section name= "log4net" type= "log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <appender name= "RollingLogFileAppender" type= "log4net.Appender.RollingFileAppender" > <!--日志路径--> <param name= "File" value= "D:\App_Log\"/> <!--是否是向文件中追加日志--> <param name= "AppendToFile" value= "true" /> <!--log保留天数--> <param name= "MaxSizeRollBackups" value= "10" /> <!--日志文件名是否是固定不变的--> <param name= "StaticLogFileName" value= "false" /> <!--日志文件名格式为:2008-08-31.log--> <param name= "DatePattern" value= "yyyy-MM-dd" .log "" /> <!--日志根据日期滚动--> <param name= "RollingStyle" value= "Date" /> <layout type= "log4net.Layout.PatternLayout" > <param name= "ConversionPattern" value= "%d [%t] %-5p %c - %m%n %loggername" /> </layout> </appender> <!-- 控制台前台显示日志 --> <appender name= "ColoredConsoleAppender" type= "log4net.Appender.ColoredConsoleAppender" > <mapping> <level value= "ERROR" /> <foreColor value= "Red, HighIntensity" /> </mapping> <mapping> <level value= "Info" /> <foreColor value= "Green" /> </mapping> <layout type= "log4net.Layout.PatternLayout" > <conversionPattern value= "%n%date{HH:mm:ss,fff} [%-5level] %m" /> </layout> <filter type= "log4net.Filter.LevelRangeFilter" > <param name= "LevelMin" value= "Info" /> <param name= "LevelMax" value= "Fatal" /> </filter> </appender> <root> <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) --> <level value= "all" /> <appender- ref ref = "ColoredConsoleAppender" /> <appender- ref ref = "RollingLogFileAppender" /> </root> </log4net> </configuration> |
第三步:调用
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 35 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using log4net; using log4net.Config; namespace Log4net { class Program { static void Main( string [] args) { InitLog4Net(); var logger = LogManager.GetLogger( typeof (Program)); logger.Info( "消息" ); logger.Warn( "警告" ); logger.Error( "异常" ); logger.Fatal( "错误" ); Console.ReadLine(); } private static void InitLog4Net() { var logCfg = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config" ); XmlConfigurator.ConfigureAndWatch(logCfg); } } } |
解决中文乱码:在 <appender></ appender>中,加上了<param name="Encoding" value="utf-8" /> 问题解决!
彪悍的人生不需要解释,彪悍的代码不需要注释。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?