(ASP.NET, C#)Log4Netを使う
NuGet
ソリューションエクスプローラのプロジェクト直下の参照を右クリック
NuGetパッケージの管理
参照タブのテキストボックスに「log4net」と入力
リストの中に「log4net」を選択、右ペインでインストールボタンを押下
設定ファイル
ソリューションエクスプローラのプロジェクト直下のPropertiesを開く
Properties/AssemblyInfo.cs
~(略)~ [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.xml", Watch = true)]
- Global.asax.cs
public class Global : HttpApplication { void Application_Start(object sender, EventArgs e) { ~(略)~ log4net.Config.XmlConfigurator.Configure(); } }
- Web.config
<configuration> <configSections> <!-- log4netセクションのハンドラ設定 --> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> </configSections> ~(略)~ <log4net> <!-- ===================================================================== --> <!-- ログ出力の対象レベルと出力先の設定 --> <!-- ===================================================================== --> <root> <!-- ログのレベルを指定 --> <!-- ALL > DEBUG > INFO > WARN > ERROR > FATAL --> <level value="ALL"/> <!-- どのログ出力先を使用するか --> <appender-ref ref="RollingFileAppender"/> </root> <!-- ===================================================================== --> <!-- ログ出力先の設定(アペンダーの設定) --> <!-- ===================================================================== --> <!-- ▼ファイル出力用[RollingFileAppender](日付や時刻の制約に基づいたログファイルの生成) --> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <param name="Encoding" value="utf-8"/> <!-- ファイル名 --> <param name="File" value="logs\"/> <!-- 追記する場合true/上書きする場合false --> <param name="AppendToFile" value="true"/> <!-- 日付や時刻の制約によるログファイルの切替 --> <param name="RollingStyle" value="Date"/> <!-- 上から「毎月、毎週、毎日、半日、毎時、毎分」の設定(デフォルトは毎時) --> <param name="DatePattern" value='""yyyyMMdd".log"'/> <param name="StaticLogFileName" value="false"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/> </layout> </appender> </log4net>
ログ出力
- ログを出力したいCSファイル
public partial class WebForm1 : System.Web.UI.Page { // ロガー private static readonly log4net.ILog logger = log4net.LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); /// <summary> /// 画面ロード /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { logger.Info("Debug message"); logger.Info("Info message"); logger.Warn("Warn message"); logger.Error("Error message"); logger.Fatal("Fatal message"); ~(略)~