• net log4net 通用配置


    一、下载并引用log4net.dll

    二、编写通用类

     1  public static class AppLog
     2     {
     3         private static ILog log;
     4 
     5         static AppLog()
     6         {
    7 XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config")); 8 // var logCfg = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config"); 9 log = LogManager.GetLogger(typeof(AppLog)); 10 } 11 12 public static void Debug(object message) 13 { 14 log.Debug(message); 15 } 16 17 public static void DebugFormatted(string format, params object[] args) 18 { 19 log.DebugFormat(format, args); 20 } 21 22 public static void Info(object message) 23 { 24 log.Info(message); 25 } 26 27 public static void InfoFormatted(string format, params object[] args) 28 { 29 log.InfoFormat(format, args); 30 } 31 32 public static void Warn(object message) 33 { 34 log.Warn(message); 35 } 36 37 public static void Warn(object message, Exception exception) 38 { 39 log.Warn(message, exception); 40 } 41 42 public static void WarnFormatted(string format, params object[] args) 43 { 44 log.WarnFormat(format, args); 45 } 46 47 public static void Error(object message) 48 { 49 log.Error(message); 50 } 51 52 public static void Error(object message, Exception exception) 53 { 54 log.Error(message, exception); 55 } 56 57 public static void ErrorFormatted(string format, params object[] args) 58 { 59 log.ErrorFormat(format, args); 60 } 61 62 public static void Fatal(object message) 63 { 64 log.Fatal(message); 65 } 66 67 public static void Fatal(object message, Exception exception) 68 { 69 log.Fatal(message, exception); 70 } 71 72 public static void FatalFormatted(string format, params object[] args) 73 { 74 log.FatalFormat(format, args); 75 }

    三、编写配置文件

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
      </configSections>
      <log4net>
        <!--定义输出到文件中-->
        <appender name="SysAppender" type="log4net.Appender.RollingFileAppender">
          <!--日志的路径-->
          <file value="Logs/" />
          <!--是否覆盖,默认是追加true-->
          <appendToFile value="true"/>
          <rollingStyle value="Composite"/>
          <!--文件名称-->
          <DatePattern value="yyyy-MM-dd HH'时.log'"></DatePattern>
          <!--设置无限备份=-1 ,最大备份数为1000-->
          <param name="MaxSizeRollBackups" value="1000"/>
          <!--每个文件的大小-->
          <param name="MaximumFileSize" value="500KB"/>
          <!--名称是否可以更改 为false为可以更改-->
          <param name="StaticLogFileName" value="false"/>
          <layout type="log4net.Layout.PatternLayout">
            <!--输出格式-->
            <conversionPattern value="%n【记录时间】%date%n【描述】%message%n"/>
          </layout>
        </appender>
        <!--定义输出到控制台命令行中-->
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%n【记录时间】%date%n【描述】%message%n"/>
          </layout>
        </appender>
        <!--定义输出到windows事件中-->
        <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%n==========
    %n【日志级别】%-5level
    %n【记录时间】%date
    %n【线程编号】[%thread]
    %n【执行时间】[%r]毫秒
    %n【出错文件】%F
    %n【出错行号】%L
    %n【出错的类】%logger 属性[%property{NDC}]
    %n【错误描述】%message
    %n【错误详情】%newline"/>
          </layout>
        </appender>
        <!--定义输出到Trace中-->
        <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
          <layout type="log4net.Layout.PatternLayout">
            <!--<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />-->
            <conversionPattern value="%n==========
    %n【日志级别】%-5level
    %n【记录时间】%date
    %n【线程编号】[%thread]
    %n【执行时间】[%r]毫秒
    %n【出错文件】%F
    %n【出错行号】%L
    %n【出错的类】%logger 属性[%property{NDC}]
    %n【错误描述】%message
    %n【错误详情】%newline"/>
          </layout>
        </appender>
        <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
        <root>
          <!--日志的级别 OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL 只有日志输出级别大于或等于配置的级别才能输出日志信息-->
          <level value="ALL" />
          <!--文件形式记录日志-->
          <appender-ref ref="SysAppender"/>
          <!--控制台控制显示日志-->
          <appender-ref ref="ConsoleAppender"/>
          <!--Windows事件日志-->
          <!--<appender-ref ref="EventLogAppender"/>-->
          <!--TraceAppender日志-->
          <!--<appender-ref ref="TraceAppender"/>-->
        </root>

    <!--过滤NHibernate生成的大量日志--> <logger name="NHibernate" additivity="false"> <level value="All"/> </logger> </log4net> </configuration>

    注意:配置文件在属性上面,要设置成 “始终复制”

    四、启动设置

     在Properties下的AssemblyInfo.cs文件中加入

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

    五、调用

    AppLog.Info("开始关闭sqlExecute");

  • 相关阅读:
    Linux进程间通信:父子进程通过信号通信,实现交替数数,时间间隔1秒
    Ubuntu18 给terminal改个漂亮的命令行提示符
    int型、char*、string、的swap算法
    C++中的友元函数的总结
    C++内联函数
    static作用,静态成员变量和静态成员函数
    9——对象的创建和撤销,构造函数和析构函数
    如何用敏捷搞垮一个团队?
    .Net核心中间件httpContext不支持并发读写 Concurrent reads or writes are not supported.
    CentOS 7 MySQL5.7 多实例(多端口)
  • 原文地址:https://www.cnblogs.com/chcong/p/11075662.html
Copyright © 2020-2023  润新知