zoukankan      html  css  js  c++  java
  • log4netdemo

     

    Install-Package log4net -Version 2.0.12

    • 数据库建表

    CREATE TABLE [dbo].[WebLog_Msg](

        [LogID] [int] IDENTITY(1,1) NOT NULL,

        [Date] [datetime] NOT NULL,

        [Thread] [nvarchar](255) NULL,

        [Level] [nvarchar](50) NULL,

        [Logger] [nvarchar](255) NULL,

        [Message] [nvarchar](2000) NULL,

        [Exception] [nvarchar](4000) NULL,

    CONSTRAINT [PK_WebLog_Msg] PRIMARY KEY CLUSTERED

    (

        [LogID] ASC

    ))

     

    • D:vs2017projlog4netdemoPropertiesAssemblyInfo.cs 添加内容

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

     

     

    • D:vs2017projlog4netdemoLoggHelper.cs 内容

    using System;

     

    namespace LogHelper

    {

    public class LoggHelper

    {

    private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(LoggHelper));

    public static void LogInfo(Exception ex)

    {

    log.Info(ex);

    }

    public static void LogWarn(Exception ex)

    {

    log.Warn(ex);

    }

    public static void LogFatal(Exception ex)

    {

    log.Fatal(ex);

    }

    public static void LogError(Exception ex)

    {

    log.Error(ex);

    }

    }

    }

    • 配置文件

    log4net.config

    <?xml version="1.0" encoding="utf-8" ?>

    <configuration>

        <!--Log4Net config section-->

        <configSections>

            <!--<sectionGroup name="common">

    <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />

    </sectionGroup>-->

            <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>

        </configSections>

        <!--<common>

    <logging>

    <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net">

    <arg key="configType" value="INLINE"/>

    </factoryAdapter>

    </logging>

    </common>-->

        <log4net>

            <root>

                <!--OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL-->

                <level value="ALL"/>

                <appender-ref ref="AdoNetAppender_SqlServer"/>

                <appender-ref ref="RollingLogFileAppender"/>

            </root>

            <!--<logger name="ErrorInfo">

    <level value="ALL" />

    <appender-ref ref="RollingLogFileAppender" />

    </logger>-->

            <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">

                <param name="File" value="logerrorInfo.txt"/>

                <param name="AppendToFile" value="true"/>

                <param name="MaxSizeRollBackups" value="10"/>

                <param name="MaximumFileSize" value="2MB"/>

                <param name="RollingStyle" value="Size"/>

                <param name="StaticLogFileName" value="true"/>

                <layout type="log4net.Layout.PatternLayout">

                    <!--"%d %t %p %l %m %n":

    1、%d输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss},输出类似:2005-7-19 17:49:27,刚好适合插入SQLServer;

    2、%t 产生该日志事件的线程名;

    3、%p 日志的log_level,如DEBUG、WARN或者INFO;

    4、%c 输出所属的类目,通常就是所在类的全名,如"iNotes.Default";

    5、%m 日志的内容;

    6、%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。如write2database.main(write2database.java:33);

    7、%n 输出一个回车换行符,Windows平台为" ",Unix平台为" "

    -->

                    <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>

                </layout>

            </appender>

            <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">

                <filter type="log4net.Filter.LevelRangeFilter">

                    <levelMin value="Warn" />

                    <levelMax value="Fatal" />

                </filter>

                <bufferSize value="0" />

                <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

                <connectionString value="server=DEVEXPRESSHaoSQL;database=log4net;user id=sa;password=****"/>

                <commandText value="INSERT INTO WebLog_Msg([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />

                <parameter>

                    <parameterName value="@log_date" />

                    <dbType value="DateTime" />

                    <layout type="log4net.Layout.RawTimeStampLayout" />

                </parameter>

                <parameter>

                    <parameterName value="@thread" />

                    <dbType value="String" />

                    <size value="255" />

                    <layout type="log4net.Layout.PatternLayout">

                        <conversionPattern value="%thread" />

                    </layout>

                </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="255" />

                    <layout type="log4net.Layout.PatternLayout">

                        <conversionPattern value="%message" />

                    </layout>

                </parameter>

                <parameter>

                    <parameterName value="@exception" />

                    <dbType value="String" />

                    <size value="4000" />

                    <layout type="log4net.Layout.ExceptionLayout" />

                </parameter>

            </appender>

        </log4net>

        <!--Log4Net config section end-->

    </configuration>

     

    • 测试

    static void Main(string[] args)

    {

    try

    {

    throw new Exception("LogInfo");

    }

    catch (Exception ex)

    {

    LoggHelper.LogInfo(ex);

    }

     

    try

    {

    throw new Exception("LogWarn");

    }

    catch (Exception ex)

    {

    LoggHelper.LogWarn(ex);

    }

     

    try

    {

    throw new Exception("LogError");

    }

    catch (Exception ex)

    {

    LoggHelper.LogError(ex);

    }

     

    try

    {

    throw new Exception("LogFatal");

    }

    catch (Exception ex)

    {

    LoggHelper.LogFatal(ex);

    }

    Console.ReadLine();

     

    }

     

    截图

  • 相关阅读:
    【PAT甲级】1043 Is It a Binary Search Tree (25 分)(判断是否为BST的先序遍历并输出后序遍历)
    Educational Codeforces Round 73 (Rated for Div. 2)F(线段树,扫描线)
    【PAT甲级】1042 Shuffling Machine (20 分)
    【PAT甲级】1041 Be Unique (20 分)(多重集)
    【PAT甲级】1040 Longest Symmetric String (25 分)(cin.getline(s,1007))
    【PAT甲级】1039 Course List for Student (25 分)(vector嵌套于map,段错误原因未知)
    Codeforces Round #588 (Div. 2)E(DFS,思维,__gcd,树)
    2017-3-9 SQL server 数据库
    2017-3-8 学生信息展示习题
    2017-3-5 C#基础 函数--递归
  • 原文地址:https://www.cnblogs.com/hlm750908/p/14864801.html
Copyright © 2011-2022 走看看