質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

0回答

3402閲覧

c# log4net ファイル名を動的に変更する方法

f_tonakai

総合スコア15

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2019/06/22 05:23

Log4netについて
動的にファイル名を変更する方法が分かりません。
お分かりの方がおられましたら、ご教授お願いします。

出力先の1回目と2回目に分けることはできたのですが、
ファイル名を変更する方法が分かりません。
試しに
appender.File = @"C:\work\Log4NetTest\bin\Debug\Log\test.log";
等、appender.Fileの値を変更すると、「test.log.20190701.log」みたいに、
ファイル名の後に実行したシステム日付が付いてしまいます。

// log4netの設定ファイル <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net> <appender name="ABC" type="log4net.Appender.RollingFileAppender"> <File value=".\Log\" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <staticLogFileName value="false" /> <datePattern value='yyyyMMdd".log"' /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d[%t] %p - %m%n"/> </layout> </appender> <root> <level value="ALL" /> <appender-ref ref="ABC" /> </root> </log4net> </configuration>
// main.cs namespace Log4NetTest { class Program { static void Main(string[] args) { // C:\work\Log4NetTest\bin\Debug\Log\yyyymmdd.log (ファイル名はシステム日付:20190701.log) Log4NetClass log1 = new Log4NetClass("LOGGRT_A"); log1.Log4NetMethod("1回目"); // C:\work\Log4NetTest\bin\Debug\Log\sample.log(ファイル名を任意の名前に変更したい) Log4NetClass log2 = new Log4NetClass("LOGGRT_B"); log2.Log4NetMethod("2回目"); } } }
namespace Log4NetTest { public class Log4NetClass { //private static ILog logger = null; private ILog logger = null; public Log4NetClass(string loggerName) { logger = LogManager.GetLogger(loggerName); var rootLogger = ((Hierarchy)logger.Logger.Repository).Root; FileAppender appender = rootLogger.GetAppender("ABC") as FileAppender;ふぁいるめいはしすてむじかん string filepath = appender.File; // 出力先フォルダとログファイル名をC#で変更したい appender.File = @"C:\work\Log4NetTest\bin\Debug\Log\"; appender.ActivateOptions(); //System.IO.File.Delete(filepath); // -> 不要? } public void Log4NetMethod(string msg) { logger.Info(msg); logger.Info("★"); logger.Error("■"); logger.Warn("▲"); logger.Debug("●"); } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問