C# log4net

1.install-package log4net

2.add new config file, its name is log4net.config

复制代码

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
<appender name="console" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="ERROR" />
<foreColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="INFO"/>
<foreColor value="Green,HighIntensity"/>
</mapping>
<mapping>
<level value="Debug"/>
<foreColor value="Yellow,HighIntensity"/>
</mapping>
<mapping>
<level value="Warn"/>
<foreColor value="Purple,HighIntensity"/>
</mapping>
<mapping>
<level value="Fatal"/>
<foreColor value="Cyan,HighIntensity"/>
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message%newline" />
</layout>
</appender>
<appender name="file" type="log4net.Appender.RollingFileAppender">
<file value="myapp.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
</appender>
</log4net>
</configuration>

复制代码

3.Right click the log4net.config and set Copy to Output Directory as 'Copy Always'

4.Open AssemblyInfo.cs and append to the end

[assembly:log4net.Config.XmlConfigurator(ConfigFile ="log4net.config")]

5. 

复制代码
 private static readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        static void Main(string[] args)
        {
            Log4netDemo();
            Console.ReadLine();
        }

        static void Log4netDemo()
        {           
            logger.Info($"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}");            
            logger.Error($"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}");
            logger.Debug($"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}");
            logger.Fatal($"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}");
            logger.Warn($"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}");             
        }
复制代码

 

Of course,you can set the file location manually as below

<file type="log4net.Util.PatternString" value="Logs\\Common\\%date{yyyy-MM-dd-HH-mm-ss-ffff}.log" />

or

<file type="log4net.Util.PatternString" value="./Logs//Common//%date{yyyy-MM-dd-HH-mm-ss-ffff}.log" />

复制代码
<appender name="file" type="log4net.Appender.RollingFileAppender">     
      <file type="log4net.Util.PatternString" value="Logs\\Common\\%date{yyyy-MM-dd-HH-mm-ss-ffff}.log" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
      </layout>
    </appender>
复制代码
posted @   FredGrit  阅读(380)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示