【VB.NET】log4netを使ったログ出力を試してみた
おはようございます。
VB.NETでも log4net を使ってログ出力を試してみました。
プログラムは前回のものを使用します。
また、WPF@C#は下記の記事を参考にしてください。
スポンサーリンク
Nuget でパッケージをダウンロード
ソリューションエクスプローラーからプロジェクトを選択、右クリックし
「Nuget パッケージの管理」を選択します。
Nuget パッケージ管理画面が表示されるので、
検索窓に「log4net」を入力し、「log4net」を選択、インストールボタンをクリックします。
変更の確認ダイアログが表示されるので、「OK」ボタンをクリックします。
出力ビューに「終了」が出力されればOKです。
アセンブリ設定ファイルの修正
パッケージエクスプローラーから対象のファイルを開きます。
AccemblyInfo.vb
// log4net を利用するための設定 // <Assembly: log4net.Config.XmlConfigurator(ConfigFile:="log4net.config", Watch:=True)>
設定ファイルの追加
パッケージエクスプローラーから「追加」>「新しい項目」を選択します。
「アプリケーション構成ファイル」を選択して「追加」ボタンをクリックします。
log4net.config
<?xml version="1.0" encoding="utf-8" ?> <!-- [log4net.config] --> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <appSettings> <!-- log4net 内部のデバッグメッセージを出力 --> <add key="log4net.Internal.Debug" value="true" /> </appSettings> <log4net> <!-- コンソール出力用のアペンダ --> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <!-- 出力文字列のフォーマット --> <layout type="log4net.Layout.PatternLayout"> <!--^「日付、スレッド、レベル、logger名、メッセージ」が出力^--> <!--^「%-5p」というのは5文字以下の場合、右側に空白を入れる設定^--> <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> </layout> </appender> <!-- ファイル出力用のアペンダ(日付でローテーション) --> <appender name="DailyFileAppender" type="log4net.Appender.RollingFileAppender"> <!-- ログファイルの切替 { サイズ: Size, 日付: Date } --> <param name="RollingStyle" value="Date" /> <!-- ファイル名 --> <param name="File" value="log/" /> <!-- ファイル名に付加する日付パターン --> <param name="DatePattern" value='yyyyMMdd".log"' /> <!-- ファイル名の固定 --> <param name="StaticLogFileName" value="false" /> <!-- ファイル書き込み { 追記: true, 上書き: false } --> <param name="AppendToFile" value="true" /> <!-- 出力文字列のフォーマット --> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%-5level %date{yyyy/MM/dd HH:mm:ss, fff} [%thread] %logger - %message%newline" /> </layout> </appender> <!-- デフォルトの出力設定 --> <root> <level value="ALL" /> <appender-ref ref="ConsoleAppender" /> <appender-ref ref="DailyFileAppender" /> </root> </log4net> </configuration>
log4net.configファイルのプロパティで、
「出力ディレクトリにコピーする」を「常にコピーする」に変更します。
検索ボタンクリック時にログを出力
次の記述を追加します。
Form1.vb
Form1.vb ' ライブラリのインポート import log4net; public Class Form1 ' ログ出力用インスタンスの宣言 Private logger As ILog = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType) . . . 省略 ''' <summary> ''' 検索ボタンクリックイベント. ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click logger.Info("MainWindows 検索ボタンクリック") search() End Sub
ログを出力してみる
アプリケーションをデバッグ起動し、検索ボタンをクリックします。
コンソール出力にログが出力されるのを確認します。
実行ディレクトリ>log>yyyymmdd.log を確認、ログが出力されていればOKです。
まとめ
WPF@C#とほとんど同じ手順で使うことができました。
ではでは。
ディスカッション
コメント一覧
まだ、コメントがありません