使用獨立的log4net.config檔案配置log4net,將日誌記錄到Mysql資料庫【原創】

來源:互聯網
上載者:User

標籤:

開發環境:

VS2013,

Asp.Net MVC 4.0,

.Net Framework 4.0,

Log4net 1.2.13.0,

Mysql.Data.dll,6.8.3.0

 

設定步驟:

1.在網站根目錄下,建立一個log4net.config的XML檔案。(檔案名稱可以任意,我們這裡叫做log4net.config)

 

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="AdoNetAppender" />
<!--<appender-ref ref="RollingFile" />-->
<!--<appender-ref ref="RollingLogFileAppender" />-->
</root>
<appender name="Console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<!-- Pattern to output the caller‘s file name and line number -->
<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
</layout>
</appender>
<!-- 記錄檔部分log輸出格式的設定 -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs\Log_" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd‘.txt‘" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<header value="------------------------------------------------------------" />
<ConversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
</layout>
</appender>

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="example.log" />
<appendToFile value="true" />
<maximumFileSize value="100KB" />
<maxSizeRollBackups value="2" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level %thread %logger - %message%newline" />
</layout>
</appender>
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data,Version=6.8.3.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d" />
<connectionString value="server=127.0.0.1;database=log4net_db;Uid=root;Pwd=123;" />
<commandText value="INSERT INTO log4net(`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>
</log4net>
</configuration> 

 

2.項目可視化下,Properties/AssemblyInfo.cs中添加:

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

 

3.global.asax.cs檔案中執行:

protected void Application_Start()
{

//獨立的log4net.config
log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net.config"));

AreaRegistration.RegisterAllAreas();

WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}

 

4.調用寫日誌方法:

ILog logger = LogManager.GetLogger(typeof(AlbumServcie));

logger.ErrorFormat("GetAlbumModel IsIISCache={0} throw Exception={1}", IsIISCache, ex.Message);

 

注意:

在log4net。config中,刪除:

<configSections>      <section name= "log4net"  type= "log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> 在web.config中,刪除 <configSections>      <section name= "log4net"  type= "log4net.Config.Log4NetConfigurationSectionHandler, log4net" />    </configSections>

 

 

 參考:

1.http://www.cnblogs.com/mahope/archive/2006/04/14/375221.html

2.http://logging.apache.org/log4net/release/config-examples.html

3.http://blog.csdn.net/zhoufoxcn/article/details/2220533

 

使用獨立的log4net.config檔案配置log4net,將日誌記錄到Mysql資料庫【原創】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.