zoukankan      html  css  js  c++  java
  • log4net 自定义的字段

    log4net.config 文件,有些字段自己定义,这里我用userName

    <?xml version="1.0"?>
    <configuration>
      <!--Log4Net config section-->
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
      </configSections>
      <log4net>
        <root>
          <!--OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL-->
          <level value="ALL"/>
          <appender-ref ref="AdoNetAppender_SqlServer"/>
          <appender-ref ref="RollingLogFileAppender"/>
        </root>
    
        
        <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
          <!--<filter type="log4net.Filter.LevelRangeFilter">
            <levelMin value="Debug" />
            <levelMax value="Info" />
          </filter>-->
          <bufferSize value="0" />
          <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
          <connectionString value="data source=10.209.32.21;initial catalog=APPDB;User ID=APPDB;Password=APPDB@2020"/>
          <!--<connectionString value="server=192.168.1.39;database=sunwin_t;user id=sa;password=sunwinbus;Connect Timeout=15;"/>-->
          <commandText value="INSERT INTO ApsLog([Date],[Level],[Logger],[Message],[UserName]) VALUES (@log_date, @log_level, @logger, @message, @username)" />
          <parameter>
            <parameterName value="@log_date" />
            <dbType value="DateTime" />
            <layout type="log4net.Layout.RawTimeStampLayout" />
          </parameter>
          <parameter>
            <parameterName value="@log_level" />
            <dbType value="String" />
            <size value="50" />
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%level" />
            </layout>
          </parameter>
          <parameter>
            <parameterName value="@logger" />
            <dbType value="String" />
            <size value="255" />
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%logger" />
            </layout>
          </parameter>
          <parameter>
            <parameterName value="@message" />
            <dbType value="String" />
            <size value="2000" />
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%message" />
            </layout>
          </parameter>
          <parameter>
            <parameterName value="@username" />
            <dbType value="String" />
            <size value="50" />
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%property{UserName}" />
            </layout>
          </parameter>      
        </appender>
      </log4net>
      <!--Log4Net config section end-->
    </configuration>

    Global.asax.cs 中加入注册信息

    protected void Application_Start()
            {
                
    
                log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("~/log4net.config")));
    
                AreaRegistration.RegisterAllAreas();
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                BundleConfig.RegisterBundles(BundleTable.Bundles);
            }
    public class LogHelper
        {
            public static readonly ILog log = LogManager.GetLogger("RollingLogFileAppender");
            public static void Debug(string message)
            {
                log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
                if (log.IsDebugEnabled)
                {
    
                    //log4net.LogicalThreadContext.Properties["CustomColumn"] = "Custom value";
                    log.Debug(message);
                }
                log = null;
            }
    public static void Info(string message,string username)
            {
                log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
                if (log.IsInfoEnabled)
                {
                    log4net.LogicalThreadContext.Properties["UserName"] = username; // 这句就是自定义字段添加方法
                    log.Info(message);
                }
                log = null;
            }
    
            
        }
  • 相关阅读:
    MyEclipse编码集设置
    Tomcat内存溢出问题解决
    避免头文件多次编译
    C++指针学习(1)
    C++头文件和实现(用复数类举例)
    从helloworld开始
    标准库string类型
    浅谈Lua的Coroutine协程的多"线程"并发模型
    关于闭包函数的概念和原理
    笔记
  • 原文地址:https://www.cnblogs.com/seanjack/p/12624361.html
Copyright © 2011-2022 走看看