配制文件详细说明
- <?xml version="1.0"?>
- <!--
- 注意: 除了手动编辑此文件以外,您还可以使用
- Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
- “网站”->“Asp.Net 配置”选项。
- 设置和注释的完整列表在
- machine.config.comments 中,该文件通常位于
- /Windows/Microsoft.Net/Framework/v2.x/Config 中
- -->
- <configuration>
- <!--日志配置部分-->
- <configSections>
- <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
- </configSections>
- <!--站点日志配置部分-->
- <log4net>
- <!--写入到数据库-->
- <appender name="ADONetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
- <!--<bufferSize value="10" />-->
- <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
- <connectionString value="Server=localhost;UID=sa;PWD=sa;DataBase=log;Max Pool Size=1000"/>
- <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)"/>
- <parameter>
- <parameterName value="@log_date"/>
- <dbType value="DateTime"/>
- <!--
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
- </layout>
- -->
- <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>
- </appender>
- <!--写入到文件-->
- <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
- <!--<file value="log/log.txt"/>-->
- <!--<file name="Client.Logging" value="log/log" />-->
- <file value="log/log" />
- <!--是否覆盖-->
- <appendToFile value="true"/>
- <!--设置无限备份=-1 ,最大备份数为1000-->
- <maxSizeRollBackups value="1000"/>
- <!--每个文件的最大20k-->
- <maximumFileSize value="20"/>
- <!--名称是否可以更改 为false为可以更改-->
- <param name="StaticLogFileName" value="false" />
- <!--文件名称-->
- <param name="DatePattern" value="yyyyMMdd".txt"" />
- <param name="RollingStyle" value="Composite" />
- <!--<param name="RollingStyle" value="Composite" />-->
- <layout type="log4net.Layout.PatternLayout">
- <param name="ConversionPattern" value="%d [%r] [%t] %-5p %c - %m%n%n" />
- </layout>
- </appender>
- <!--写入到操作系统-->
- <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
- </layout>
- </appender>
- <!--写入到access-->
- <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
- <bufferSize value="1" />
- <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D://工作目录//代码//Demo//LogDemo//db//access.mdb;User Id=;Password=;" />
- <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" />
- <parameter>
- <parameterName value="@log_date" />
- <dbType value="String" />
- <size value="255" />
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date" />
- </layout>
- </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="1024" />
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%message" />
- </layout>
- </parameter>
- </appender>
- <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
- <mapping>
- <level value="ALL" />
- <foreColor value="White" />
- <backColor value="Red, HighIntensity" />
- </mapping>
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
- </layout>
- </appender>
- <!--写入到文件,是累加,不生成新的文件-->
- <appender name="FileAppender" type="log4net.Appender.FileAppender">
- <file value="log/log-file.txt" />
- <appendToFile value="true" />
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
- </layout>
- </appender>
- <!-- Setup the root category, add the appenders and set the default level -->
- <root>
- <level value="ALL"/>
- <appender-ref ref="ADONetAppender_SqlServer"/>
- <appender-ref ref="RollingLogFileAppender"/>
- <appender-ref ref="EventLogAppender"></appender-ref>
- <appender-ref ref="AdoNetAppender_Access"></appender-ref>
- <appender-ref ref="ColoredConsoleAppender"></appender-ref>
- <appender-ref ref="FileAppender"></appender-ref>
- </root>
- <!-- Specify the level for some specific categories -->
- <logger name="ConsoleApp.LoggingExample">
- <!-- <appender-ref ref="B" /> -->
- <level value="ALL"/>
- <appender-ref ref="ADONetAppender_SqlServer"/>
- <appender-ref ref="RollingLogFileAppender"/>
- </logger>
- </log4net>
- </configuration>
log4net ConsoleLogDemo
- using System;
- using System.Collections.Generic;
- using System.Text;
- using log4net.Core;
- namespace ConsoleLogDemo
- {
- class Program
- {
- static void Main(string[] args)
- {
- logTest();
- logFileTest();
- }
- private static void logTest()
- {
- log4net.ILog log = log4net.LogManager.GetLogger("ConsoleApp.LoggingExample");
- log.Info("hello world!");
- }
- private static void logFileTest()
- {
- log4net.ILog log = log4net.LogManager.GetLogger("LoggingExample");
- log.Info("hello world!");
- }
- }
- }
log4net WebDemo
- using System;
- using System.Data;
- using System.Configuration;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- public partial class _Default : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- }
- protected void Button1_Click(object sender, EventArgs e)
- {
- log4net.ILog log = log4net.LogManager.GetLogger("testApp.Logging");
- log.Info("hello world!");
- }
- protected void Button2_Click(object sender, EventArgs e)
- {
- log4net.ILog log = log4net.LogManager.GetLogger("edtest");
- log.Debug("hello world!");
- }
- }
log4net WindowsLogDemo
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.Diagnostics;
- namespace WindowsLogDemo
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
- log.Error("error", new Exception("发生了一个异常"));
- //记录严重错误
- log.Fatal("fatal", new Exception("发生了一个致命错误"));
- //记录一般信息
- log.Info("hellow world!");
- //记录调试信息
- log.Debug("debug");
- //记录警告信息
- log.Warn("warn");
- }
- private void button2_Click(object sender, EventArgs e)
- {
- ProcessStart(string.Format("{0}//log//log-file.txt", Application.StartupPath));
- }
- public static bool ProcessStart(string filePath)
- {
- ProcessStartInfo info = new ProcessStartInfo(filePath);
- info.CreateNoWindow = false;
- info.ErrorDialog = true;
- info.UseShellExecute = true;
- try
- {
- Process.Start(info);
- return true;
- }
- catch
- {
- return false;
- }
- }
- }
- }