zoukankan      html  css  js  c++  java
  • log4net

            [STAThread]
            static void Main(string[] args)
            {
                string assemblyFilePath = Assembly.GetExecutingAssembly().Location;
                string assemblyDirPath = Path.GetDirectoryName(assemblyFilePath);
                //string configFilePath = Path.Combine(assemblyDirPath, "HelperToolslog4net.config");
                string configFilePath = Path.Combine(assemblyDirPath, "log4net.config");
                //DOMConfigurator.Configure(new FileInfo(configFilePath));
                log4net.Config.XmlConfigurator.Configure(new FileInfo(configFilePath));
    }
             public static ILog GetLoggerByName(string name)
             {
                 if (LogManager.Exists(name) == null)
                 {
    
                     // Pattern Layout defined
                     PatternLayout patternLayout = new PatternLayout();
                     patternLayout.ConversionPattern = "%date %thread %level %logger - %message%newline";
                     patternLayout.ActivateOptions();
    
                     // configurating the RollingFileAppender object
                     RollingFileAppender appender = new RollingFileAppender();
                     appender.Name = name;
                     appender.AppendToFile = true;
                     appender.File = $"Logs\{name}.log";
                     appender.StaticLogFileName = true;
                     appender.PreserveLogFileNameExtension = true;
                     appender.LockingModel = new FileAppender.MinimalLock();
                     appender.Layout = patternLayout;
                     appender.MaxSizeRollBackups = 512;
                     appender.MaximumFileSize = "150MB";
                     appender.RollingStyle = RollingFileAppender.RollingMode.Composite;
                     appender.ActivateOptions();
    
                     Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
    
                     var loger = hierarchy.GetLogger(name, hierarchy.LoggerFactory); //!!! 此处写法是重点,不容更改
                     loger.Hierarchy = hierarchy;
                     loger.AddAppender(appender);
                     loger.Level = Level.All;
    
                     BasicConfigurator.Configure();//!!! 此处写法是重点,不容更改
    
                     var appname = Assembly.GetEntryAssembly().GetName().Name;
                     var version = Assembly.GetEntryAssembly().GetName().Version;
                     loger.Log(Level.Info, $"Log name {name} created for Application: {appname} Version: {version}", null);
                 }
                 var log = LogManager.GetLogger(name);
                 return log;
             }
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net"  type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
      </configSections>
    
      <log4net>
        <logger name="LogInfo">
          <level value="ALL" />
          <appender-ref ref="LogInfoAppender" />
        </logger>
        <appender  name="LogInfoAppender" type="log4net.Appender.RollingFileAppender,log4net" >
            <param name="File" value="Log.txt" />
            <param name="Encoding" value="utf-8" />
            <param name="AppendToFile" value="true" />
            <param name="RollingStyle" value="Composite" />
            <param name="lockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
            <param name="StaticLogFileName" value="false" />
            <param name="MaxSizeRollBackups" value="100" />
            <param name="MaximumFileSize" value="10MB" />
            <param name="PreserveLogFileNameExtension" value="true"/>
            <param name="CountDirection" value="1" />
            <datePattern value="yyyy-MM-dd" />
    
            <layout type="log4net.Layout.PatternLayout,log4net">
            <param name="ConversionPattern" value="%d:%-5level [%t](%C:%M:%L) - %m%n" />
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="ALL" />
            <param name="LevelMax" value="OFF" />
          </filter>
        </appender>
        
      </log4net>
    
    </configuration>
  • 相关阅读:
    java8--- Optional使用
    java8--- (Function、Predicate、Consumer) 通用函数式接口
    java8--- Predicate 意义 代码
    Java8---函数式编程-示例
    java8-----lambda语法
    java8----Predicate接口的使用
    Windows 下安装 ElasticSearch 修改 elasticsearch.yml的坑
    kafka 安装教程
    list 转 map java8
    数组转字符串 java8
  • 原文地址:https://www.cnblogs.com/xytmj/p/15237129.html
Copyright © 2011-2022 走看看