きな粉もち.net

.NET関連仕事に携わっています。OSSのソースを読んで気がついたことを中心に呟いたりブログに投稿したりしています。最近はUiPathを使ったRPAも研究中。気軽にフォローやツッコミよろしくおねがいします! Gitはここを使っています https://github.com/kinakomotitti

log4net

C# × for文 × カウンターについての間違った認識を正してみた

この記事の目的 この記事では、 自分が持っていたfor文についての間違った認識を正すこと を目的としています。 アジェンダ この記事の目的 アジェンダ 本題 ★基本のき!for文の書き方 ★Log4netのとあるクラスにて・・・ ★正しい考え方を整理 まとめ 本題 ★…

C#×custom collection×作る理由

この記事の目的 この記事では、 log4netのAppenderCollectionクラス(カスタムコレクション)が作られた理由を自分なりにまとめること を目的としています。 本題 前回までのあらすじ カスタムコレクションを作る理由とは(一般論) log4netではなぜつくった…

log4net × AppenderCollection × カスタムコレクションの作成

log4netでは、appenderを管理するのに、AppenderCollectionというカスタムコレクションを利用しています。カスタムコレクション。。。気になったのは、.NET Framework標準のListではなく、カスタムコレクションを実装することになった理由です。 まだ調査中…

log4net ✖︎ 起動処理 ✖︎ まとめ

log4netの起動処理も最後となりました。今まで断片的に起動処理の内容を見てきました。 それぞれで、参考になる実装を中心に見てきましたので、全体的な処理の流れについては疎かになっていました。 そういう事情から、今回は起動処理完了記念として、 「log…

log4net × xml 読み込み処理 × その他の種類まとめ

log4netの初期化処理も中盤に入ってきました。log4netでは、log出力のconfigファイルの読み込みをXmlConfiguratorクラスの中で、XmlReaderと、XmlDocumentを利用して実装しています。 XmlReaderSettings settings = new XmlReaderSettings(); settings.DtdPr…

log4net × 設定ファイルの読み込み処理 × 例外処理

よく、ファイルの読み込み処理を実装することがあります。 まぁ、読み込み処理だけに限ったものではないのですが、 ・どこまで、例外を考慮して実装するか ・例外が発生した場合の実装はどうするか などがあいまいになってしまい、とりあえず正常系だけ実装…

log4net × FileSystemWatcher × 設定ファイルの監視

引き続き、log4netの起動処理の解読をする中で学んだ技術についてまとめていきます。 今回は、System.IO.FileSystemWatcherクラスについてです。log4netでは、FileSystemWatcherを使って設定ファイルの変更を監視し、変更があった場合設定ファイルを再読み込…

log4net × System.Attribute × 呪文

log4netのDeep Diveの続きになります。前回*1に引き続き、log4netを読んでいるうちに知ったCustomAttributeについてまとめます。 今回は、特に設定したCustom Assemblyの情報をどうやって取得するかを中心にまとめます。 以下のように(普通に)Loggerのイン…

log4net × Assemblyファイルの設定 × 属性の名前付きパラメータ

久しぶりのlog4netのDeep Diveの続きになります。 今回は、log4netを読んでいるうちに知ったCustomAttributeの設定方法、定義方法についてまとめます。log4netを利用する時、logの出力設定を定義した設定ファイル(log4net.config)を用意します。 さらにlog…

log4net × Lock Model × Mutex(続き)

InterProcessLockというModelクラスの実装についての記事の続きです。 どのようにしてMutexを使ってロックをかけているかを順番に見ていきます。 順番は以下の通りです。 ファイルオープン ロック要求 ←特にここ ロック解除 ←特にここ ファイルクローズ 1.…

log4net × FileStream × Using

log4netでは、ファイルの排他制御にLockModelクラスを利用しています。 そのLockModelクラスでは、ファイルの出力操作にFileStreamを使って出力を行います。(LockModelには3つの種類がありますが、どのModelを使ってもFileStreamを利用します。) 出力の準…

log4net × Lock Model × Mutex

log4netの起動処理の追っかけは難しかったので、いったん飛ばしておきます。 とりあえず、次のステップのFileAppenderの処理について細かくみていきます・・・ FileAppenderクラスはこんな感じに実装されています! ということで、上から見ていきます。 ロッ…

log4net × Deep dive × 環境準備

ログの出力をしたいときによく使うOSS「log4net」。 使い方は知っているけど、 ・実際に内部でどういうことを行っているか ・知っている機能以外に使っていない便利機能はないか などについて改めて知りたくなりました! ソースコードはGitHubで公開されてい…