zoukankan      html  css  js  c++  java
  • WinForm下使用 log4net

    在C# winForm程序中添加log4net

    1. 引用 log4net.dll

    2. 添加 app.config 内容如下:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <log4net>
            <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
                <param name="File" value="LogLog.txt" />
                <param name="AppendToFile" value="true" />
                <param name="MaxSizeRollBackups" value="100" />
                <param name="MaximumFileSize" value="2MB" />
                <param name="RollingStyle" value="Size" />
                <param name="StaticLogFileName" value="true" />
                <layout type="log4net.Layout.PatternLayout">
                    <param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
                </layout>
            </appender>
            <root>
                <level value="all" />
                <appender-ref ref="RollingLogFileAppender" />
            </root>
        </log4net>
    </configuration>

    具体设置说明可在网上找。

    3. 在 Properties/AssemblyInfo.cs 添加 [assembly: log4net.Config.DOMConfigurator(Watch=true)]

    4. 在代码中添加日志

    定义LOG private static log4net.ILog LOG = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

    写入日志 LOG.Info("窗体打开");

    5. 如果要记录所有未处理异常,修改 Program.cs 如下 

    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    using System.Reflection;
     
    namespace ExceptionTest
    {
        static class Program
        {
            static log4net.ILog LOG = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
     
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                //捕获未处理异常
                Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
                Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
                AppDomain.CurrentDomain.UnhandledException +=new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
     
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
     
            static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
            {
                LOG.Error(e.Exception);
                //throw new Exception("线程未知异常", e.Exception);
                MessageBox.Show(e.Exception.Message, "线程异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Application.Exit();
            }
     
            static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
            {
                Exception ex = e.ExceptionObject as Exception;
                LOG.Error(ex);
                MessageBox.Show(ex.Message, "应用程序异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Application.Exit();
            }
        }
    }

    在Asp.net 网站中添加log4net

    1. 引用 log4net.dll

    2. 配置Web.config 如下

    <?xml version="1.0"?>
     
    <configuration>
        <configSections>
            <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
        </configSections>
        <appSettings/>
        <connectionStrings/>
        <system.web>
            <compilation debug="true"/>
            <authentication mode="Windows"/>
        </system.web>
     
        <!--日志-->
        <log4net>
            <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
                <param name="File" value="D: estLog.txt" />
                <param name="AppendToFile" value="true" />
                <param name="MaxSizeRollBackups" value="100" />
                <param name="MaximumFileSize" value="2MB" />
                <param name="RollingStyle" value="Size" />
                <param name="StaticLogFileName" value="true" />
                <layout type="log4net.Layout.PatternLayout">
                    <param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
                </layout>
            </appender>
            <root>
                <level value="all" />
                <appender-ref ref="RollingLogFileAppender" />
            </root>
        </log4net>
    </configuration>

    3. 添加 Global.asax 内容如下:

    private static log4net.ILog LOG = log4net.LogManager.GetLogger("Log4net 测试网站");
    void Application_Start(object sender, EventArgs e)
    {
        // 在应用程序启动时运行的代码
        log4net.Config.DOMConfigurator.Configure();
        LOG.Info("网站启动");
    }
     
    void Application_Error(object sender, EventArgs e)
    {
        // 在出现未处理的错误时运行的代码
        Exception ex = HttpContext.Current.Server.GetLastError();
        LOG.Error("未处理异常", ex);
    }

    将站点的所有未处理异常记录到log4net中。

    4. 如何使用

    定义LOG private static log4net.ILog LOG = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

    写入日志 LOG.Info("网站启动");

    示例代码下载

    下载:https://files.cnblogs.com/zjfree/ErrorLog.rar

  • 相关阅读:
    Java Object类
    Java StringBuffer类
    Java String 类
    vuex的使用总结
    vue 周期函数
    vue-cli keep-alive用法以及activated,deactivated
    vue-cli 跳转方式
    vue-cli watch/timer
    vue-cli 使用better-scroll
    vue-cli less使用
  • 原文地址:https://www.cnblogs.com/totogo/p/4519669.html
Copyright © 2011-2022 走看看