• .Net FramWork 和Net Core3.1配置Log4.net


    一,.NET FramWork 4.7.2

    1.NuGet包下载log4.net

     2.添加配置文件配置(configSections必须放在configuration下第一个节点

    1. <configSections>
    2. <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
    3. </configSections>
    4. <log4net>
    5. <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
    6. <!-- Set root logger level to ERROR and its appenders -->
    7. <root>
    8. <level value="DEBUG" />
    9. <appender-ref ref="RollingFileTracer" />
    10. </root>
    11. <!-- Print only messages of level DEBUG or above in the packages -->
    12. <appender name="RollingFileTracer" type="log4net.Appender.RollingFileAppender,log4net">
    13. <!--存储到项目的bin/Debug/下的地址-->
    14. <param name="File" value="App_Data/Log/" />
    15. <param name="AppendToFile" value="true" />
    16. <param name="RollingStyle" value="Composite" />
    17. <param name="MaxSizeRollBackups" value="10" />
    18. <param name="MaximumFileSize" value="1MB" />
    19. <!--文件名-->
    20. <param name="DatePattern" value=""Log_"yyyyMMdd".txt"" />
    21. <param name="StaticLogFileName" value="false" />
    22. <layout type="log4net.Layout.PatternLayout,log4net">
    23. <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
    24. </layout>
    25. </appender>
    26. </log4net>

     3.程序调用

    1. private static ILog log = LogManager.GetLogger(typeof(Program));//typeof放当前类
    2. static void Main(string[] args)
    3. {
    4. // 这段代码要在程序运行的入口进行配置
    5. log4net.Config.XmlConfigurator.Configure();//需要配置这段代码,log4才能生效
    6. //log4net的简单使用
    7. log.Error("错误", new Exception("发生了一个异常"));//错误
    8. log.Fatal("严重错误", new Exception("发生了一个致命错误"));//严重错误
    9. log.Info("信息"); //记录一般信息
    10. log.Debug("调试信息");//记录调试信息
    11. log.Warn("警告");//记录警告信息
    12. }

     

    二,ASP.NET Core MVC  (net core 3.1)

    1.项目NuGet下载Microsoft.Extensions.Logging.Log4Net.AspNetCore

    2.添加log4net配置文件

    log4net.config内容(下面可复制)

    ​​​​​​​

    1. "1.0" encoding="utf-8" ?>
    2. <log4net>
    3. <root>
    4. <level value="ERROR"/>
    5. <level value="WARN"/>
    6. <level value="INFO"/>
    7. <level value="DEBUG"/>
    8. <appender-ref ref="ErrorLog" />
    9. <appender-ref ref="WarnLog" />
    10. <appender-ref ref="InfoLog" />
    11. <appender-ref ref="DebugLog" />
    12. root>
    13. <appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
    14. <param name="File" value="DataLog/File"/>
    15. <param name="DatePattern" value="/yyyy-MM-dd/"Error.log""/>
    16. <appendToFile value="true"/>
    17. <rollingStyle value="Composite"/>
    18. <staticLogFileName value="false"/>
    19. <maximumFileSize value="200MB"/>
    20. <maxSizeRollBackups value="-1"/>
    21. <layout type="log4net.Layout.PatternLayout">
    22. <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
    23. layout>
    24. <filter type="log4net.Filter.LevelRangeFilter">
    25. <param name="LevelMin" value="ERROR" />
    26. <param name="LevelMax" value="ERROR" />
    27. filter>
    28. appender>
    29. <appender name="WarnLog" type="log4net.Appender.RollingFileAppender">
    30. <param name="File" value="DataLog/File"/>
    31. <param name="DatePattern" value="/yyyy-MM-dd/"Warn.log""/>
    32. <appendToFile value="true"/>
    33. <rollingStyle value="Composite"/>
    34. <staticLogFileName value="false"/>
    35. <maximumFileSize value="200MB"/>
    36. <maxSizeRollBackups value="-1"/>
    37. <layout type="log4net.Layout.PatternLayout">
    38. <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
    39. layout>
    40. <filter type="log4net.Filter.LevelRangeFilter">
    41. <param name="LevelMin" value="WARN" />
    42. <param name="LevelMax" value="WARN" />
    43. filter>
    44. appender>
    45. <appender name="InfoLog" type="log4net.Appender.RollingFileAppender">
    46. <param name="File" value="DataLog/File"/>
    47. <param name="DatePattern" value="/yyyy-MM-dd/"Info.log""/>
    48. <appendToFile value="true"/>
    49. <rollingStyle value="Composite"/>
    50. <staticLogFileName value="false"/>
    51. <maximumFileSize value="200MB"/>
    52. <maxSizeRollBackups value="-1"/>
    53. <layout type="log4net.Layout.PatternLayout">
    54. <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
    55. layout>
    56. <filter type="log4net.Filter.LevelRangeFilter">
    57. <param name="LevelMin" value="INFO" />
    58. <param name="LevelMax" value="INFO" />
    59. filter>
    60. appender>
    61. <appender name="DebugLog" type="log4net.Appender.RollingFileAppender">
    62. <param name="File" value="DataLog/File"/>
    63. <param name="DatePattern" value="/yyyy-MM-dd/"Debug.log""/>
    64. <appendToFile value="true"/>
    65. <rollingStyle value="Composite"/>
    66. <staticLogFileName value="false"/>
    67. <maximumFileSize value="200MB"/>
    68. <maxSizeRollBackups value="-1"/>
    69. <layout type="log4net.Layout.PatternLayout">
    70. <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
    71. layout>
    72. <filter type="log4net.Filter.LevelRangeFilter">
    73. <param name="LevelMin" value="DEBUG" />
    74. <param name="LevelMax" value="DEBUG" />
    75. filter>
    76. appender>
    77. log4net>

    3.Startup类里更改一下Configure方法,添加参数 Microsoft.Extensions.Logging.ILoggerFactory loggerFactory,在方法体内加上loggerFactory.AddLog4Net()

     //如果你的配置文件放在某一个文件夹下loggerFactory.AddLog4Net("ConfigFile/log4net.Config")
     //如直接放项目下的就直接啥也不用填,会自己获取

    1. Microsoft.Extensions.Logging.ILoggerFactory loggerFactory
    2. loggerFactory.AddLog4Net();//指向日志配置文件

     4.Program类添加一段代码(在下面可复制)

     //如果你的配置文件放在某一个文件夹下LogBuilder.AddLog4Net("ConfigFile/log4net.Config")
     //如直接放项目下的就直接啥也不用填,会自己获取

    1. .ConfigureLogging(LogBuilder =>
    2. {
    3. LogBuilder.AddLog4Net();
    4. })

     

    5.调用

     

  • 相关阅读:
    漫谈:C语言 C++ 函数返回值究竟是什么
    2022年苹果审核4.3相关问题总结
    如何在uniapp中优雅地使用WebView
    【英语:语法基础】B2.核心语法-动词
    SpringBoot + Activiti7 整合页面
    Linux入门第二天——linux命令(一)
    开发者研究与洞察
    css常用属性
    Java基础之《Ajax+JQuery(JavaEE开发进阶Ⅱ)》—JQuery事件与动画(1)
    python--requests接口测试
  • 原文地址:https://blog.csdn.net/weixin_45381269/article/details/126958024