ログ出力方式
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「...
-[[戻る>アプリケーション設計のポイント]]
*目次 [#h94eb5ed]
#contents
*概要 [#e0d82e07]
-ページを分割しました。
-本ページへのアンカーは、[[ログ出力方式 (lon4net)>#c71097...
*詳細 [#u9a4036f]
**コンパチ可能なリプレース [#w42698ff]
-[[lon4net>#c71097de]] を [[NLog>#v2ab16ed]]にリプレース。
--足回り(ライブラリ)をリプレースするだけで、設計自体は...
--そのため、ユーザコード側の変更を最小限に抑える。
--ただし、[[NLog>#v2ab16ed]]の定義などを一気に揃える必要...
-コンパチブルにする
--以下の何れかの設計変更が必要になる。
--コレにより、[[lon4net>#c71097de]]から[[NLog>#v2ab16ed]]...
***DIコンテナでは難しい。 [#h11838cb]
DIだと、config処理をユーザ側に持たせる必要がある。~
(Program.csや、Setup.csに書かせるようなconfigをユーザ側...
-共通I/F
--下位スタックでDIされたLoggerを使用する場合、~
共通I/Fが無いならレイトバインドするしかない。
--共通I/Fがあれば、下位はインターフェイスのみ実装し、~
config用ライブラリも含め、実体を上位からDIすることもでき...
--[[lon4net>#c71097de]] と [[NLog>#v2ab16ed]]に共通のイン...
---従って、コンパチの情報もない。
---DIはユーザ・レイヤでのみ可能。
-よくよく考えると、DIされたLoggerを、基盤側で使用している~
ようなケースは無い(ASP.NET Coreでも無い)ですね...。
***[[ベースクラス2]]からDIする。 [#j990ed96]
[[ベースクラス2]]からDIすれば、~
最小限の初期化コードで済みそう。
-Public(ライブラリ)側に、~
共通I/F(純粋仮想関数)を定義する。
-Business([[ベースクラス2]])側に、
--共通I/Fを継承した、ManagerとLoggerを定義する。
--Businessで初期化を行い、PublicにDIする。
-Publicの共通I/F(純粋仮想関数)経由でログ出力する。
***[[ベースクラス1]]や共通部品内で完結させる。 [#j9f65813]
ただ、初期化処理自体が面倒という話もある。
-依存ライブラリが少ないので両方サポートしても良さそう。
--https://www.nuget.org/packages/log4net/
--https://www.nuget.org/packages/NLog/
-実装の方法
--LogIF内部をIF文で分割。
--LogManager内部でクラスを分割。
**ログ出力方式 [#d49a9d28]
***[[lon4net>ログ出力方式 (lon4net)]] [#c71097de]
***[[NLog>ログ出力方式 (NLog)]] [#v2ab16ed]
*参考 [#r1886bdd]
-log4net の開発休止宣言に伴い NLog に移行 - Life like a c...
https://clown.cube-soft.jp/entry/2020/06/01/log4net-to-nlog
**マイクロソフト系技術情報 Wiki [#j1c81919]
***OpenTouryoProject/OpenTouryo [#rd6b29af]
-The log4net project would be dormanted. · Issue #363~
https://github.com/OpenTouryoProject/OpenTouryo/issues/363
-OpenTouryo/root/files/resource/Log at master~
https://github.com/OpenTouryoProject/OpenTouryo/tree/mast...
-OpenTouryo/root/programs/CS/Frameworks/Infrastructure/Pu...
https://github.com/OpenTouryoProject/OpenTouryo/tree/mast...
--https://github.com/OpenTouryoProject/OpenTouryo/blob/ma...
--https://github.com/OpenTouryoProject/OpenTouryo/blob/ma...
終了行:
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「...
-[[戻る>アプリケーション設計のポイント]]
*目次 [#h94eb5ed]
#contents
*概要 [#e0d82e07]
-ページを分割しました。
-本ページへのアンカーは、[[ログ出力方式 (lon4net)>#c71097...
*詳細 [#u9a4036f]
**コンパチ可能なリプレース [#w42698ff]
-[[lon4net>#c71097de]] を [[NLog>#v2ab16ed]]にリプレース。
--足回り(ライブラリ)をリプレースするだけで、設計自体は...
--そのため、ユーザコード側の変更を最小限に抑える。
--ただし、[[NLog>#v2ab16ed]]の定義などを一気に揃える必要...
-コンパチブルにする
--以下の何れかの設計変更が必要になる。
--コレにより、[[lon4net>#c71097de]]から[[NLog>#v2ab16ed]]...
***DIコンテナでは難しい。 [#h11838cb]
DIだと、config処理をユーザ側に持たせる必要がある。~
(Program.csや、Setup.csに書かせるようなconfigをユーザ側...
-共通I/F
--下位スタックでDIされたLoggerを使用する場合、~
共通I/Fが無いならレイトバインドするしかない。
--共通I/Fがあれば、下位はインターフェイスのみ実装し、~
config用ライブラリも含め、実体を上位からDIすることもでき...
--[[lon4net>#c71097de]] と [[NLog>#v2ab16ed]]に共通のイン...
---従って、コンパチの情報もない。
---DIはユーザ・レイヤでのみ可能。
-よくよく考えると、DIされたLoggerを、基盤側で使用している~
ようなケースは無い(ASP.NET Coreでも無い)ですね...。
***[[ベースクラス2]]からDIする。 [#j990ed96]
[[ベースクラス2]]からDIすれば、~
最小限の初期化コードで済みそう。
-Public(ライブラリ)側に、~
共通I/F(純粋仮想関数)を定義する。
-Business([[ベースクラス2]])側に、
--共通I/Fを継承した、ManagerとLoggerを定義する。
--Businessで初期化を行い、PublicにDIする。
-Publicの共通I/F(純粋仮想関数)経由でログ出力する。
***[[ベースクラス1]]や共通部品内で完結させる。 [#j9f65813]
ただ、初期化処理自体が面倒という話もある。
-依存ライブラリが少ないので両方サポートしても良さそう。
--https://www.nuget.org/packages/log4net/
--https://www.nuget.org/packages/NLog/
-実装の方法
--LogIF内部をIF文で分割。
--LogManager内部でクラスを分割。
**ログ出力方式 [#d49a9d28]
***[[lon4net>ログ出力方式 (lon4net)]] [#c71097de]
***[[NLog>ログ出力方式 (NLog)]] [#v2ab16ed]
*参考 [#r1886bdd]
-log4net の開発休止宣言に伴い NLog に移行 - Life like a c...
https://clown.cube-soft.jp/entry/2020/06/01/log4net-to-nlog
**マイクロソフト系技術情報 Wiki [#j1c81919]
***OpenTouryoProject/OpenTouryo [#rd6b29af]
-The log4net project would be dormanted. · Issue #363~
https://github.com/OpenTouryoProject/OpenTouryo/issues/363
-OpenTouryo/root/files/resource/Log at master~
https://github.com/OpenTouryoProject/OpenTouryo/tree/mast...
-OpenTouryo/root/programs/CS/Frameworks/Infrastructure/Pu...
https://github.com/OpenTouryoProject/OpenTouryo/tree/mast...
--https://github.com/OpenTouryoProject/OpenTouryo/blob/ma...
--https://github.com/OpenTouryoProject/OpenTouryo/blob/ma...
ページ名: