ソリューションエクスプローラからAssemblyInfo.csを開きます
たぶんPropertiesを開いたらあります
そのなかに以下の文を追加
[assembly:log4net.Config.XmlConfigurator(Watch =true, ConfigFile = "log4net.xml")]
log4netの設定をApp.configに記載したいとかの場合は
↑とはちょっとちがうかも
log4net.xmlのプロパティを開いて
「出力ディレクトリにコピー」という項目が「コピーしない」になっていたら
デバッグ実行でテストしてみてもログが出力されないかもしれないので
コピーする系の設定に変えておきます
Form1.cs
using System.Windows.Forms;
namespace LogTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Log.Debug("デバッグ");
Log.Info("情報");
Log.Error("エラー", new Exception());
}
}
}
Formにボタンだけ貼り付けて
その中の処理で適当にログを出力させます
実行してみる
動かしてみるlog4net.xmlだとファイルサイズ最高で100kBで
10個までできてしまい、軽く動かしてみるだけには面倒なので
設定を次のように変えて動かします
<maxSizeRollBackups value="3" />
これなら1kBを超えたらバックアップができて
バックアップも3つ程度で終われそう
実行してボタンを1回クリックしてみます
log4net.xmlのfile valueに設定済みのパスに
ログが現れました
中を開いてみると、この形式で出力されています
このままボタンを連打してみます
ログのバックアップが3つまで作成されて
それ以上には増えていないようです
翌日にまた続けてログを吐いてみましたが
ファイルはこれ以上にはなりませんでした
参考: