• log4net日志使用示例


    一、引用log4net动态库

    在项目直接引用log4net.dll文件,或者通过Nuget安装(本文使用1.2.10版本)

    二、在主项目增加log4net配置文件

    在主项目下添加log4net.config文件,比如有Main主项目、Common工具项目等多个项目时,需要把log4net.config放在Main项目下

    1. "1.0" encoding="utf-8" ?>
    2. <configuration>
    3. <configSections>
    4. <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    5. configSections>
    6. <log4net>
    7. <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
    8. <param name= "File" value= "logs/info/"/>
    9. <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
    10. <param name= "AppendToFile" value= "true"/>
    11. <param name= "StaticLogFileName" value= "false"/>
    12. <param name= "DatePattern" value= "yyyy-MM-dd'.txt'"/>
    13. <param name= "RollingStyle" value= "Date"/>
    14. <layout type="log4net.Layout.PatternLayout">
    15. <param name="ConversionPattern" value="%n%d [%t] %-5p %c [%L] - %m %n" />
    16. layout>
    17. <filter type="log4net.Filter.LevelRangeFilter">
    18. <levelMin value="DEBUG" />
    19. <levelMax value="WARN" />
    20. filter>
    21. appender>
    22. <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
    23. <param name= "File" value= "logs/Error/"/>
    24. <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
    25. <param name= "AppendToFile" value= "true"/>
    26. <param name= "StaticLogFileName" value= "false"/>
    27. <param name= "DatePattern" value= "yyyy-MM-dd'.txt'"/>
    28. <param name= "RollingStyle" value= "Date"/>
    29. <layout type="log4net.Layout.PatternLayout">
    30. <param name="ConversionPattern" value="%n%d [%t] %-5p %c [%L] - %m %n" />
    31. layout>
    32. <filter type="log4net.Filter.LevelRangeFilter">
    33. <levelMin value="ERROR" />
    34. <levelMax value="FATAL" />
    35. filter>
    36. appender>
    37. <root>
    38. <level value="all" />
    39. <appender-ref ref="InfoAppender"/>
    40. <appender-ref ref="ErrorAppender"/>
    41. root>
    42. log4net>
    43. configuration>

    三、配置文件属性改为“更新复制”或“始终复制”

    四、修改对应项目properties下的assmbly.cs文件,添加一些代码

    修改 log4net.LogManager.GetLogger 获取实例所在的项目的assmbly.cs(我在Common工具项目添加了一个LogHelper.cs的类,日志使用时从Common.LogHelpr里面获取Logger实例;所以修改的是Common工具项目的assmbly.cs)

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

    五、代码调用

    1. //public log4net.ILog Logger = log4net.LogManager.GetLogger(typeof(ClassName));
    2. //Logger.Info("这里是普通日志");
    3. //Logger.Error("这里是错误日志");
    4. //Common项目
    5. public class LogHelper
    6. {
    7. public static ILog GetLogger<T>()
    8. {
    9. return log4net.LogManager.GetLogger(typeof(T));
    10. }
    11. }
    12. //其他项目使用日志时
    13. private ILog logger = LogHelper.GetLogger();
    14. logger.Info("测试日志打印");

  • 相关阅读:
    进程的通信 - 邮槽
    Python 算法高级篇:归并排序的优化与外部排序
    Boost1.74.0交叉编译
    【追求卓越01】数据结构--数组
    springboot基于微信小程序的电器商城系统的设计与实现毕业设计源码251453
    与堆和堆排序相关的问题
    ROS保存路径,将cartographer的路径点/trajectory_node_list话题数据保存为txt和excel文件,并画出轨迹图
    【面试专题】设计模式篇①
    Latex 辅助写作工具
    【技术】BootStrapTable 滚动条控制
  • 原文地址:https://blog.csdn.net/never_tears/article/details/127609573