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