zoukankan      html  css  js  c++  java
  • log4net的初使用

    最近在写一些C#的程序,想找一个记录日志的软件,当然会想起在java中大名鼎鼎的log4j,查了一下还真的发现有.net版的,就上网找了一些资料学了一下,把它用起来再说,用法很简单,只要把Log4Net.dll加入工程中,然后在App.config添加如下配置文件:

     1 <?xml version="1.0" encoding="utf-8" ?>
     2 <configuration>
     3     <configSections>
     4         <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
     5     </configSections>
     6     <log4net>
     7         <!--定义输出到文件中-->
     8         <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
     9             <!--定义文件存放位置-->
    10             <file value="log.log" />
    11             <layout type="log4net.Layout.PatternLayout">
    12                 <!--每条日志末尾的文字说明-->
    13                 <footer value="[Footer]--Test By Ring1981  " />
    14                 <!--输出格式
    15                     每种转换符号都以%开始,后面跟着一个格式符号和换符号。
    16                     %-数字 :该项的最小长度,小于最小长度的用空格填充
    17                     %m(message):输出的日志消息
    18                     %n(new line):换行 
    19                     %d(datetime):输出当前语句运行的时刻 
    20                     %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数 
    21                     %t(thread id):当前语句所在的线程ID 
    22                     %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等 
    23                     %c(class):当前日志对象的名称,
    24                     %L(line ):输出语句所在的行号 
    25                     %F(file name):输出语句所在的文件名
    26                     %logger 日志名称
    27                 -->
    28                 <conversionPattern value="时间:%date [线程:%thread] %-5level  [类:%c][%L行]%n    %-5level:%message%newline" />
    29             </layout>
    30         </appender>
    31         <!--定义输出到控制台命令行中-->
    32         <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    33             <layout type="log4net.Layout.PatternLayout">
    34                 <!--conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /-->
    35                 <conversionPattern value="时间:%date [线程:%thread] %-5level  [类:%c][%L行]%n    %-5level:%message%newline" />
    36             </layout>
    37         </appender>
    38         <!--定义输出到windows事件中-->
    39         <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
    40             <layout type="log4net.Layout.PatternLayout">
    41                 <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    42             </layout>
    43         </appender>
    44         <!--RollingFileAppender是输出源也是输出到文件中,只是以自增长的方式-->
    45         <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    46             <param name="File" value="log/system_log_"/>
    47             <!--是否覆盖-->
    48             <param name="AppendToFile" value="true"/>
    49             <!--设置无限备份=-1 ,最大备份数为1000-->
    50             <param name="MaxSizeRollBackups" value="100"/>
    51             <!--每个文件的最大20k-->
    52             <param name="MaximumFileSize" value="1KB"/>
    53             <!--名称是否可以更改 为false为可以更改-->
    54             <param name="StaticLogFileName" value="false"/>
    55             <!--文件名称-->
    56             <param name="DatePattern" value="yyyyMMdd&quot;.log&quot;"/>
    57             <param name="RollingStyle" value="Date"/>
    58             <layout type="log4net.Layout.PatternLayout">
    59                 <!--conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %SysMessage%newline" /-->
    60                 <conversionPattern value="时间:%date [线程:%thread] %-5level  [类:%c][%L行]%n    %-5level:%message%newline" />
    61             </layout>
    62         </appender>
    63         <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
    64         <root>
    65             <appender-ref ref="LogFileAppender" />
    66             <appender-ref ref="ConsoleAppender" />
    67             <appender-ref ref="EventLogAppender" />
    68             <appender-ref ref="RollingLogFileAppender" />
    69         </root>
    70     </log4net>
    71 </configuration>
    72 

    然后在AssemblyInfo.cs文件最后加入[assembly: log4net.Config.DOMConfigurator()]即可用了

    示例:

     1 class Program
     2 {
     3         private static ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
     4 
     5         static void Main(string[] args)
     6         {
     7             log.Debug("测试日志");
     8             log.Info("测试日志");
     9             log.Warn("测试日志");
    10             Console.Read();
    11         }
    12 }

    运行效果:

  • 相关阅读:
    Codeforces E-Anton and Tree
    树的重心和直径-POJ1655
    Cisco packet tracer 实现两台计算机互ping
    codeforce 679A Bear and Prime 100 (交互题)
    codejam 2019 round 1C Robot Programming Strategy (构造)
    luogu P1086 花生采摘 (优先队列+模拟)
    ZOJ 4110 Strings in the Pocket (马拉车+回文串)
    HDOJ 6508 Problem I. Spell Boost (01背包/DP)
    L2-011 玩转二叉树 (25 分) (树)
    L2-004 这是二叉搜索树吗? (25 分) (树)
  • 原文地址:https://www.cnblogs.com/benzhang/p/1743059.html
Copyright © 2011-2022 走看看