log4net サンプル
Global.asax.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Security; using System.Web.SessionState; using log4net; using log4net.Config; namespace Sample { public class Global : System.Web.HttpApplication { private static readonly ILog _log = LogManager.GetLogger("App"); protected void Application_Start(object sender, EventArgs e) { XmlConfigurator.Configure(); } protected void Application_Error(object sender, EventArgs e) { Exception lastError = this.Server.GetLastError(); if (lastError is HttpUnhandledException) { _log.Fatal("未処理の例外が発生しました。", lastError); } else { _log.Error("エラーが発生しました。", lastError); } } } }
Web.config
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <system.web> <customErrors mode="RemoteOnly" defaultRedirect="Error.html"/> </system.web> <log4net> <appender name="ApplicationLog" type="log4net.Appender.RollingFileAppender"> <file value="Logs/app" /> <appendToFile value="true" /> <maxSizeRollBackups value="10" /> <rollingStyle value="date" /> <staticLogFileName value="false" /> <datePattern value='"."yyyy-MM-dd".log"' /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n" /> </layout> </appender> <appender name="NHibernateFileLog" type="log4net.Appender.RollingFileAppender"> <file value="Logs/nhibernate" /> <appendToFile value="true" /> <maxSizeRollBackups value="10" /> <rollingStyle value="date" /> <staticLogFileName value="false" /> <datePattern value='"."yyyy-MM-dd".log"' /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n" /> </layout> </appender> <appender name="DataLog" type="log4net.Appender.RollingFileAppender"> <file value="Logs/data" /> <appendToFile value="true" /> <maxSizeRollBackups value="10" /> <rollingStyle value="date" /> <staticLogFileName value="false" /> <datePattern value='"."yyyy-MM-dd".log"' /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n" /> </layout> </appender> <!-- levels: DEBUG, INFO, WARN, ERROR, FATAL --> <logger name="App" additivity="false"> <level value="Error"/> <appender-ref ref="ApplicationLog"/> </logger> <!--<logger name="NHibernate" additivity="false"> <level value="DEBUG"/> <appender-ref ref="NHibernateFileLog"/> </logger> <logger name="Pushable.Data" additivity="false"> <level value="DEBUG"/> <appender-ref ref="DataLog"/> </logger>--> </log4net> </configuration>