DOBON.NET DOBON.NETプログラミング掲示板過去ログ

log4netで設定したログ出力先パス、ファイル名の取得

環境/言語:[.NetFramework2.0]
分類:[ASP.NET]

ASP.Net2.0で、log4netを利用してログ出力を行っています。
log4net.configにて設定したログ出力先のパス、ファイル名を取得しようと思っているのですが、
APIからなかなか見つけれません。


どのようにすれば取得することができるのか教えて頂けないでしょうか。
現在の設定は下記の通りで、「.\log\Online.log」を取得したいと考えています。


【log4net.config】
  <appender name="RollingFileAppender_Size" type="log4net.Appender.RollingFileAppender">
  <!-- ファイル名 -->
  <param name="File" value=".\log\Online.log" />
 </ appender>


【Global.asax】
 Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
  'アプリケーションのスタートアップで実行するコードです()
  '--------------------
  ' log4netの設定
  '--------------------
  Dim rootPath As String = Me.Server.MapPath("~/")
  log4net.Config.XmlConfigurator.Configure(New System.IO.FileInfo(rootPath & "log4net.config"))
 End Sub

【アプリケーション】
 'Private定数の定義
 Private Shared ReadOnly log As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)

 'ログ出力
 log.Debug("メッセージ")
当方、C# しか経験がありませんが、以下参考になりますでしょうか。

log4net.Repository.ILoggerRepository[] repositories = log4net.LogManager.GetAllRepositories();
foreach (log4net.Repository.ILoggerRepository repository in repositories)
{
    foreach (log4net.Appender.IAppender appender in repository.GetAppenders())
    {
        log4net.Appender.FileAppender fileAppender = appender as log4net.Appender.FileAppender;
        if (fileAppender != null)
        {
            // 何かの処理
        }
    }
}
■No22078に返信(imaさんの記事)
> 当方、C# しか経験がありませんが、以下参考になりますでしょうか。


ありがとうございます。
.Netへ変換して、取得することができました。
以下が、.Net版のソースです。



Dim filename As String
Dim repositories() As log4net.Repository.ILoggerRepository = log4net.LogManager.GetAllRepositories()
For Each repository As log4net.Repository.ILoggerRepository In repositories
 For Each appender As log4net.Appender.IAppender In repository.GetAppenders()
  Dim fileAppender As log4net.Appender.FileAppender = DirectCast(appender, log4net.Appender.FileAppender)
  filename = fileAppender.File()
 Next
Next
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板