お試し 技術

C#でログファイルを実装する

今回はログファイルについてです。NLogを使おうと思っていたいのですが、いつの間にか非推奨(2024年11月現在)となっていたのでlog4netを使用します

バージョン
OSWindows 11 Pro
C#8.0
log4net2.0.17

log4netの設定

以下のサイトを参考にlog4netをプロジェクトに追加します。私もログファイル用のconfigファイルを作成しました
ただ、『5. AssemblyInfoにlog4netを初期化するコードを記述する』は実施する必要はありません

参考サイト
【C#, log4net】log4netを使う #Log4Net - Qiita
【C#, log4net】log4netを使う #Log4Net - Qiita

やり方をよく忘れるので記録。健忘症どころじゃない。今回はロガーの初期化(設定読み込み)とロガーインスタンス取得に的を絞る ...

続きを読む

毎日ログファイルを作成

実行した日ごとにログファイルを作成したかったので以下の設定にしています

  <log4net>
    <!-- ログ出力先の定義 -->
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:\Output\log_" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <datePattern value='"_"yyyyMMdd".log"'/>
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <param name="StaticLogFileName" value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%date{yyyy-MM-dd,HH:mm:ss.fff},%level,%message%newline" />
      </layout>
    </appender>

    <root>
      <!-- ログのレベルを指定 -->

      <!-- すべてのログ・レベルを出力 -->
      <level value="ALL" />

      <!-- どのログ出力先を使用するか -->
      <appender-ref ref="RollingFileAppender" />
    </root>

  </log4net>

実際にログファイルに書き出す

参考サイトにある『AssemblyInfoに~』は.Net 8.0にはないので省いています

// log4netの初期化(ログクラスを使用する前に必ず実施する必要がある)
log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net.config"));
log4net.ILog _logger = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
_logger.Debug("デバッグ用");
_logger.Info("インフォメーション用");
_logger.Warn("警告用");
_logger.Error("エラー用");

int result = 50;
_logger.Debug($"結果は{result}です。");

try
{
    throw new Exception("例外発生");
}
catch (Exception e)
{
    _logger.Warn("例外が発生しました。", e);
}

これでログファイルが毎日作成されます

会社紹介

私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています

会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造

この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています

ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します

ホームページ
アドバンスド・ソリューション株式会社
アドバンスド・ソリューション株式会社

アドバンスド・ソリューションは主にMicrosoft製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...

サイトへ移動

お問い合わせ
お問い合わせ  | アドバンスド・ソリューション株式会社
お問い合わせ | アドバンスド・ソリューション株式会社

お問い合わせはこちら

-お試し, 技術
-