1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

C# log4net でログ出力

Posted at

#概要
・C#でのログ出力について、備忘的な感じで残す。
・今のところ、ほぼ参考先のままなので、後で自分なりの設定が決まったら修正する。

##開発環境
・Visual Studio 2019 Community

##詳細
関連ソース一覧

ファイル 概要
AssemblyInfo.cs 最初からあるファイル、ログの定義ファイルの場所を記述しておく
Log4net.xml ログの定義を記述するファイル※
※プロパティの「出力ディレクトリにコピー」を「常にコピーする」にしておく。
AssemblyInfo.cs
using System.Windows;

[assembly: ThemeInfo(
    ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
                                     //(used if a resource is not found in the page,
                                     // or application resource dictionaries)
    ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
                                              //(used if a resource is not found in the page,
                                              // app, or any theme specific resource dictionaries)
)]
// Log4Net用設定ファイル
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "./Resources/Log4net.xml", Watch = true)]

↑最後のところに追加する。

AssemblyInfo.cs
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <log4net>
    <appender name="systemlog" type="log4net.Appender.RollingFileAppender">

      <appendToFile value="true" />
      <StaticLogFileName value="false" />

      <rollingStyle value="Date" />
      <!-- 出力先 -->
      <file value="C:\logs\systemLog-" />
      <DatePattern value='yyyyMMdd".log"' />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="INFO" />
        <param name="LevelMax" value="Error" />
      </filter>
      <layout type="log4net.Layout.PatternLayout">
        <ConversionPattern value="%date [%thread] [%-5level] %logger - %message%n" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="systemlog" />
    </root>
  </log4net>
</configuration>

##動作確認

ログ呼び出し.cs
ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().Name);

log.Info("INFOで出力");
log.Warn("WARNで出力");

image.png

ログファイルにはこんな感じで出力される
2021-11-16 22:55:11,692 [1] [INFO ] DBAccess - INFOで出力
2021-11-16 22:55:11,700 [1] [WARN ] DBAccess - WARNで出力

↑「DBAccess」のところは、呼び出し元の関数。

##感想
log4jと使い方的にはそこまで変わらないかなという印象でした。

参考

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?