C#でLog4netを使ってログを書く方法

#03_C#でLog4netを使ってログを書く方法_設定ファイルの記述方法

前回は,log4netのインストールまでやりました。今回は,ログを出すための各種設定をして行きます。

AssemblyInfoの設定

まずはPropertiesを開いてAssemblyInfoをダブルクリックしてコードを表示します。

AssemblyInfoファイルの一番したまでスクロールし,次のように記述します。

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
AssemblyInfo.cs
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// アセンブリに関する一般情報は以下の属性セットをとおして制御されます。
// 制御されます。アセンブリに関連付けられている情報を変更するには、
// これらの属性値を変更します。
[assembly: AssemblyTitle("Meron")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Meron")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// ComVisible を false に設定すると、このアセンブリ内の型は COM コンポーネントから
// 参照できなくなります。COM からこのアセンブリ内の型にアクセスする必要がある場合は、
// その型の ComVisible 属性を true に設定してください。
[assembly: ComVisible(false)]

// このプロジェクトが COM に公開される場合、次の GUID が typelib の ID になります
[assembly: Guid("804c66ab-8cb2-4fc0-bec1-4069bd4fed9d")]

// アセンブリのバージョン情報は、以下の 4 つの値で構成されています:
//
//      メジャー バージョン
//      マイナー バージョン
//      ビルド番号
//      リビジョン
//
// すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます
// 既定値にすることができます:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: log4net.Config.XmlConfigurator(Watch = true)]  //★これ

//★これの部分が追記した部分です。

App.Configの設定

次はApp.configファイルの設定をして行きます。ここにコンソールにログを出力するとか,ファイルにログを出力するなどの設定を書いていきます。

ダブルクリックで,コードを表示してください。

まずはコンソールにログを出力する設定をして行きます。 

コンソールとは

コンソールとは,プログラムを,ビジュアルスタジオで実行した時に,出力ウィンドウに表示されるやつのことです。

コンソールウィンドウが出てなかったら

もしコンソールが出てなかったら,ツールバーのデバッグから,「ウィンドウ」「出力」の順で選択し,出力ウィンドウを表示してください。今からこのウィンドウにログを表示するための設定をして行きます。

 

configSectionsタグの記述

App.Configファイルの「startup」タグの上あたりに,次のような「configSections」の部分を記載します。

App.config

<?xml version=”1.0″ encoding=”utf-8″ ?>
<configuration>

<configSections>
<section name=”log4net”
type=”log4net.Config.Log4NetConfigurationSectionHandler,log4net” />
</configSections>

<startup>
<supportedRuntime version=”v4.0″ sku=”.NETFramework,Version=v4.7.2″ />
</startup>

</configuration>

 

log4netタグの記述

次にlog4netタグの記述をしていきます。この部分で,コンソールに出力するなどの設定をして行くことになります。「configSections」タグの下にlog4netタグを書きます。

App.config

<?xml version=”1.0″ encoding=”utf-8″ ?>
<configuration>

<configSections>
<section name=”log4net”
type=”log4net.Config.Log4NetConfigurationSectionHandler,log4net” />
</configSections>

<log4net>
<appender name=”LogConsole” type=”log4net.Appender.ConsoleAppender”>
<layout type=”log4net.Layout.PatternLayout”>
<conversionPattern value=”%d[%t] %p – %m%n”/>
</layout>
</appender>
</log4net>

<startup>
<supportedRuntime version=”v4.0″ sku=”.NETFramework,Version=v4.7.2″ />
</startup>

</configuration>

「appender name=”LogConsole”」のLogConsoleという名前は,任意でつける名前になります。今回はコンソールに出すと言うことでこういう名前にしています。

「log4net.Appender.ConsoleAppender」という部分が、コンソールに出力するという意味の設定になります。

「layout type」の部分は,ログの構成を設定しています。ログの構成とは、「日付を出して」「プログラム名を出して」「メッセージを出して」といった、ログメッセージの順序のフォーマットことです。この順序の詳細に関しては別のレクチャーで後述します。

rootタグの記述

log4netタグの中にrootタグを作成します。ここに使用するAppenderを記載します。

ここには先程記載した、LogConsoleを指定します。ここに指定が無い場合はログが出力されないので注意してください。

App.config

<?xml version=”1.0″ encoding=”utf-8″ ?>
<configuration>

<configSections>
<section name=”log4net” type=”log4net.Config.Log4NetConfigurationSectionHandler,log4net” />
</configSections>

<log4net>
<appender name=”LogConsole” type=”log4net.Appender.ConsoleAppender”>
<layout type=”log4net.Layout.PatternLayout”>
<conversionPattern value=”%d[%t] %p – %m%n”/>
</layout>
</appender>

<root>
<!– 使用するアペンダを設定 –>
<appender-ref ref=”LogConsole” />
</root>
</log4net>

<startup>
<supportedRuntime version=”v4.0″ sku=”.NETFramework,Version=v4.7.2″ />
</startup>
</configuration>

ここまで書けたら設定ファイルはオッケーです。次回からC#のコート側で、ログを出力するコードを書いていきます

C#でLog4netを使ってログを書く方法