ユーザ用ツール

サイト用ツール


it技術:dotnet:ログ出力

文書の過去の版を表示しています。


ログ出力

log4net

オープンソースのロギング・サービス「log4net」
オープンソースのロギング・サービス「log4net」を使う

Assembly.vbに下記の設定をしないと、ログが出力されてこない。

Assembly.vb
'App.configに設定した場合
<Assembly: log4net.Config.XmlConfigurator(Watch:=True)>
'外部ファイルにして使用する場合
'<Assembly: log4net.Config.XmlConfigurator(ConfigFile:="Log4net.xml", Watch:=True)>  

App.configのconfigSectionsタグ内に下記の定義を行う。

App.config
<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>

App.configのlog4netの定義を行う。
下記の設定内容では、Test.exe直下にlogフォルダが作成され、Test_yyyyMMdd.logのファイルが出力される。
【ログの中身】
2016/09/23 17:25:50 [INFO ] テスト

App.config
  <log4net>
    <!-- ===================================================================== -->
    <!--                 ログ出力先の設定(アペンダーの設定)                       -->
    <!-- ===================================================================== -->
 
    <!-- ▼ファイル出力用[RollingFileAppender](日付や時刻の制約に基づいたログファイルの生成) -->
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
			<param name="Encoding" value="utf-8" />
 
      <!-- 作成するログファイル -->
      <param name="File" value=".\log\CrimpHelper" />
 
      <!-- 追記する場合true/上書きする場合false -->
      <param name="AppendToFile" value="true" />
      <!-- ログを新規ファイルに切替える条件 -->
      <rollingStyle value="Date" />
 
      <!-- ログファイル名を固定にするか -->
      <staticLogFileName value="false" />
 
      <!-- rollingStyleがdateまたはCompositeの際にファイル名に付与される文字列 -->
      <datePattern value='"_"yyyyMMdd".log"' />
 
      <!-- ローテして残しておくログファイル数 -->
      <MaxSizeRollBackups value="-1" />
 
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
 
      <!-- ログの書式 -->
      <layout type="log4net.Layout.PatternLayout">
          <ConversionPattern value="%date{yyyy/MM/dd HH:mm:ss} [%-5p] %m%n" />
      </layout>
    </appender>
 
    <!-- ===================================================================== -->
    <!--     ログ出力の対象レベルと出力先の設定                                   -->
    <!-- ===================================================================== -->
    <root>
      <!-- 警告以上のログを出力したい場合 -->
      <!-- ALL > DEBUG > INFO > WARN > ERROR > FATAL -->
      <level value="INFO" />
      <!-- 出力タイプの指定(ファイルへ出力) -->
      <appender-ref ref="RollingFileAppender" />
    </root>
 
  </log4net>

プログラムでログ出力する場合

    'loggerを生成する(以下の記述は、ほとんどのコードで利用できる)
    Private _logger As ILog = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
 
    _logger.Debug("開発中のデバッグ/トレースに使用する")
    _logger.Info("情報(操作履歴等)")
    _logger.Warn("注意/警告(障害の一歩手前)")
    _logger.Error("システムが停止するまではいかない障害が発生")
    _logger.Fatal("システムが停止する致命的な障害が発生")
it技術/dotnet/ログ出力.1491062188.txt.gz · 最終更新: 2017/04/02 00:56 by yajuadmin