• 深入浅出SharePoint——Log4net应用


    使用强大的开源日志库Log4net来处理应用程序的日志信息,记录错误,警告,信息。

    1 下载Log4net,在项目中引用log4net.dll

    2 在AssemblyInfo.cs中添加以下代码

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

    3 添加cs文件

    public static class Log4netUtil
        {
            private static ILog GetLog()
            {
                ILog log = null;
                try
                {
                    StackTrace stack = new StackTrace();
                    MethodBase method = stack.GetFrame(8).GetMethod();
                    string methodName = method.DeclaringType.Namespace + "." 
                                      + method.DeclaringType.Name + "." 
                                      + method.ToString().Substring(method.ToString().IndexOf(" ") + 1);                
                    log = LogManager.GetLogger(methodName);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                return log;
            }
    
            /// <summary>
            /// Fatals log
            /// </summary>
            /// <param name="pMethod">method</param>
            /// <param name="pMessage">message</param>
            public static void Fatal(string pMessage)
            {
                SPSecurity.RunWithElevatedPrivileges(delegate() 
                {
                    ILog log = Log4netUtil.GetLog();
                    if (log.IsFatalEnabled)
                    {
                        log.Fatal(pMessage);
                        //SPListLog.Log.Fatal(pMessage);
                    } 
                });
            }
    
            /// <summary>
            /// Erros log
            /// </summary>
            /// <param name="pMethod">method.</param>
            /// <param name="pMessage">message.</param>
            public static void Error(string pMessage)
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    ILog log = Log4netUtil.GetLog();
                    if (log.IsErrorEnabled)
                    {
                        log.Error(pMessage);
                        //SPListLog.Log.Error(pMessage);
                    }
                });
            }
    
            /// <summary>
            /// Warning log
            /// </summary>
            /// <param name="pMethod">method.</param>
            /// <param name="pMessage">message.</param>
            public static void Warn(string pMessage)
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    ILog log = Log4netUtil.GetLog();
                    if (log.IsWarnEnabled)
                    {
                        log.Warn(pMessage);
                        //SPListLog.Log.Warn(pMessage);
                    }
                });
            }
    
            /// <summary>
            /// Information log
            /// </summary>
            /// <param name="pMethod">method.</param>
            /// <param name="pMessage">message.</param>
            public static void Info(string pMessage)
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    ILog log = Log4netUtil.GetLog();
                    if (log.IsInfoEnabled)
                    {
                        log.Info(pMessage);
                        //SPListLog.Log.Info(pMessage);
                    }
                });
            }
    
            /// <summary>
            /// Debugging log
            /// </summary>
            /// <param name="pMethod">method.</param>
            /// <param name="pMessage">message.</param>
            public static void Debug(string pMessage)
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    ILog log = Log4netUtil.GetLog();
                    if (log.IsDebugEnabled)
                    {
                        log.Debug(pMessage);
                        //SPListLog.Log.Debug(pMessage);
                    }
                });
            }
        }

    4 添加log4net.config文件,其内容如下

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <!--log configuration-->
      <configSections>
          <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
      </configSections>
      <!--site log configuraiton-->
      <log4net>
        <root>
          <!-- Level: OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
          <priority value="ALL"/>
          <appender-ref ref="RollingFileAppender"/>
        </root>
        <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %-5level %logger %message%newline"/>
          </layout>
        </appender>
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %-5level %logger %message%newline"/>
          </layout>
        </appender>
        <appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender" >
          <bufferSize value="5" />
          <lossy value="true" />
          <evaluator type="log4net.Core.LevelEvaluator">
            <threshold value="WARN"/>
          </evaluator>
          <appender-ref ref="ConsoleAppender" />
        </appender>
        <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
          <file value="Log\\"/>
          <appendToFile value="true"/>
          <rollingStyle value="Composite" />
          <datePattern value="yyyyMMdd&quot;_log.txt&quot;" />
          <maxSizeRollBackups value="10" />
          <maximumFileSize value="50MB" />
          <staticLogFileName value="false"/>
          <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %-5level %logger %message%newline"/>
          </layout>
        </appender>
      </log4net>
    </configuration>

    5 使用log4net,日志将被记录在bin\log文件夹下。

  • 相关阅读:
    Codeforces 1182E Product Oriented Recurrence 矩阵快速幂
    Codeforces 1182D Complete Mirror hash
    HDU
    HDU
    HDU
    HDU
    HDU
    HDU
    web框架之Vue渐进式框架-安装及入门
    web框架之Jqeury基本使用
  • 原文地址:https://www.cnblogs.com/mingle/p/2812934.html
Copyright © 2020-2023  润新知