Log4Net configuration and usage

Source: Internet
Author: User

Log4Net configuration and usage

 

<ConfigSections>
<Section name = "log4net" type = "System. Configuration. IgnoreSectionHandler"/>
<! -- <Section name = "log4net" type = "log4net. Config. Log4NetConfigurationSectionHandler, log4net"/> -->
</ConfigSections>
<Log4net>
<! -- Define output to file -->
<! -- Error -->
<Appender name = "RollingErrorLogFileAppender" type = "log4net. Appender. RollingFileAppender">
<! -- Define the file storage location -->
<File value = "Mylog \ ERROR \"/>
<AppendToFile value = "true"/>
<RollingStyle value = "Date"/>
<DatePattern value = "yyyy \ yyyyMM \ yyyyMMdd'.txt '"/>
<StaticLogFileName value = "false"/>
<Param name = "MaxSizeRollBackups" value = "1000"/>
<Layout type = "log4net. Layout. PatternLayout">
<! -- Output format -->
<ConversionPattern value = "% newline % n record time: % date % n thread ID: [% thread] % n log level: %-5 level % n error class: % logger property: [% property {NDC}]-% n error Description: % message % newline "/>
</Layout>
<Filter type = "log4net. Filter. LevelRangeFilter">
<! -- Filter logs and only record ERROR to FATAL -->
<LevelMin value = "ERROR"/>
<LevelMax value = "ERROR"/>
</Filter>
</Appender>
<! -- FATAL -->
<Appender name = "RollingFATALLogFileAppender" type = "log4net. Appender. RollingFileAppender">
<! -- Define the file storage location -->
<File value = "Mylog \ FATAL \"/>
<AppendToFile value = "true"/>
<RollingStyle value = "Date"/>
<DatePattern value = "yyyy \ yyyyMM \ yyyyMMdd'.txt '"/>
<StaticLogFileName value = "false"/>
<Param name = "MaxSizeRollBackups" value = "1000"/>
<Layout type = "log4net. Layout. PatternLayout">
<! -- Output format -->
<ConversionPattern value = "% newline % n record time: % date % n thread ID: [% thread] % n log level: %-5 level % n error class: % logger property: [% property {NDC}]-% n error Description: % message % newline "/>
</Layout>
<Filter type = "log4net. Filter. LevelRangeFilter">
<! -- Filter logs and only record ERROR to FATAL -->
<LevelMin value = "FATAL"/>
<LevelMax value = "FATAL"/>
</Filter>
</Appender>
<! -- Define output to database -->
<! --
SQL statement used to create a table in SQL Server
Create table [dbo]. [Log] (
[Id] [int] IDENTITY (1, 1) not null,
[Date] [datetime] not null,
[Thread] [varchar] (255) not null,
[Level] [varchar] (50) not null,
[Logger] [varchar] (255) not null,
[Message] [varchar] (4000) not null,
[Exception] [varchar] (2000) NULL
);
-->
<Appender name = "AdoNetAppenderErrorSQLServer" type = "log4net. Appender. AdoNetAppender">
<BufferSize value = "1"/>
<ConnectionType value = "System. Data. SqlClient. SqlConnection, System. Data, Version = 1.0.3300.0, Culture = neutral, PublicKeyToken = b77a5c561934e089"/>
<ConnectionString value = "server = LONGPENG; uid = sa; pwd = 0129; database = LogDB;"/>
<CommandText value = "insert into LogError ([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 = "4000"/>
<Layout type = "log4net. Layout. PatternLayout">
<ConversionPattern value = "% message"/>
</Layout>
</Parameter>
<Parameter>
<ParameterName value = "@ exception"/>
<DbType value = "String"/>
<Size value = "2000"/>
<Layout type = "log4net. Layout. ExceptionLayout"/>
</Parameter>
</Appender>
<Root>
<Level value = "ALL"/>
<! -- Log recorded as a file -->
<Appender-ref = "RollingErrorLogFileAppender"/>
<Appender-ref = "RollingFATALLogFileAppender"/>

<! -- Record logs in the database format -->
<Appender-ref = "AdoNetAppenderErrorSQLServer"/>
</Root>
</Log4net>

================================== Another configuration ==================================

<Log4net>
<Root>
<Level value = "ALL"/>
<Appender-ref = "SysAppender"/>
<Appender-ref = "consoleApp"/>
</Root>
<! -- <Logger name = "WebLogger">
<Level value = "DEBUG"/>
</Logger> -->
<Appender name = "SysAppender" type = "log4net. Appender. RollingFileAppender, log4net">
<! -- <Param name = "File" value = "E: \ COLDDEMO \ project \ practice \ Solution201708 \ logs \"/> -->
<Param name = "File" value = "... \ .. \ MyLog \ AT \ ERROR \"/>
<! -- <Param name = "File" value = "C: \ TestWeb \ Debug \ Error \"/> -->
<Param name = "AppendToFile" value = "true"/>
<Param name = "RollingStyle" value = "Date"/>
<Param name = "DatePattern" value = "&quot;&quot;yyyyMMdd&quot;.txt & quot;"/>
<Param name = "StaticLogFileName" value = "false"/>
<Layout type = "log4net. Layout. PatternLayout, log4net">
<Param name = "ConversionPattern" value = "% d [% t] %-5 p % c-% m % n"/>
<Param name = "Header" value = "------------------------------------------------ & # xD; & # xA;"/>
<Param name = "Footer" value = "---------------------- footer -------------------------- & # xD; & # xA;"/>
</Layout>
<Filter type = "log4net. Filter. LevelRangeFilter">
<! -- Filter logs and only record ERROR to FATAL -->
<LevelMin value = "ERROR"/>
<LevelMax value = "ERROR"/>
</Filter>
</Appender>
<! --.. \ .. \ MyLog \ AT \ -->
<Appender name = "leleapp" type = "log4net. Appender. RollingFileAppender, log4net">
<! -- <Param name = "File" value = "E: \ COLDDEMO \ project \ practice \ Solution201708 \ logs \"/> -->
<Param name = "File" value = "... \ .. \ MyLog \ AT \ Warn \"/>
<! -- <Param name = "File" value = "C: \ TestWeb \ Debug \ Error \"/> -->
<Param name = "AppendToFile" value = "true"/>
<Param name = "RollingStyle" value = "Date"/>
<Param name = "DatePattern" value = "&quot;&quot;yyyyMMdd&quot;.txt & quot;"/>
<Param name = "StaticLogFileName" value = "false"/>
<Layout type = "log4net. Layout. PatternLayout, log4net">
<Param name = "ConversionPattern" value = "% d [% t] %-5 p % c-% m % n"/>
<Param name = "Header" value = "------------------------------------------------ & # xD; & # xA;"/>
<Param name = "Footer" value = "---------------------- footer -------------------------- & # xD; & # xA;"/>
</Layout>
<Filter type = "log4net. Filter. LevelRangeFilter">
<! -- Filter logs and record only Warn -->
<LevelMin value = "Warn"/>
<LevelMax value = "Warn"/>
</Filter>
</Appender>
</Log4net>

========================================================== ================================

Usage:

[Assembly: log4net. Config. XmlConfigurator (Watch = true)]
Namespace WebAppl
{
Public class LogHelper
{
/// <Summary>
/// Call Log4net to write logs
/// </Summary>
/// <Param name = "logContent"> log content </param>
/// <Param name = "log4Level"> record Log Level, enumeration </param>
Public static void WriteLog (string logContent, Log4NetLevel log4Level)
{
WriteLog (null, logContent, log4Level );
}

/// <Summary>
/// Call Log4net to write logs
/// </Summary>
/// <Param name = "type"> specifies the type of the error class in the log.
/// <Param name = "logContent"> log content </param>
/// <Param name = "log4Level"> record Log Level, enumeration </param>
Public static void WriteLog (Type type, string logContent, Log4NetLevel log4Level)
{
ILog log = type = null? LogManager. GetLogger (""): LogManager. GetLogger (type );

Switch (log4Level)
{
Case Log4NetLevel. Warn:
Log. Warn (logContent );
Break;
Case Log4NetLevel. Debug:
Log. Debug (logContent );
Break;
Case Log4NetLevel. Info:
Log. Info (logContent );
Break;
Case Log4NetLevel. Fatal:
Log. Fatal (logContent );
Break;
Case Log4NetLevel. Error:
Log. Error (logContent );
Break;
}
}

}


/// <Summary>
/// Log4net Log Level type Enumeration
/// </Summary>
Public enum Log4NetLevel
{
[Description ("warning")]
Warn = 1,
[Description ("debugging information")]
Debug = 2,
[Description ("general information")]
Info = 3,
[Description ("severe error")]
Fatal = 4,
[Description ("error log")]
Error = 5
}
}

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.