Repository navigation
OTR_LoggingNLog
nishi_74322014 edited this page Oct 27, 2026
·
1 revision
-
TOP > 使い方 > ログ出力方式 (NLog)
- ログ出力方式 (log4net)
- ログ出力方式 (NLog)
- Open 棟梁は、ログ・ライブラリを log4net から NLog に切り替えられる。
-
LogIFの内部で切り替えるため、ユーザ・コードは変わらない。ログの種類や書式も log4net と同じ方式になる。 - log4net の開発休止の懸念(Issue #363)を受けて、段階的に移行できるように追加した。
足回り(ライブラリ)だけを入れ替え、設計は変えない方針を採った。
- log4net と NLog には共通のインターフェイスが無い。
- DI コンテナで切り替える方法は、構成処理(
Program.csなど)をユーザ側に持たせることになるので採らなかった。 - 依存ライブラリが少ないので、両方をサポートし、
LogIF・LogManagerの内部で分岐させている。
設定 LogLib で切り替える。
LogLib の値 |
使われる実装 |
|---|---|
| 未設定 | log4net |
nlog |
NLog |
| 上記以外 | log4net |
- .NET Framework(
app.config/Web.config)
<add key="LogLib" value="nlog" />- .NET(
appsettings.json)
"LogLib": "nlog",ロガー名(ACCESS、SQLTRACE、OPERATION など)とターゲット(log4net のアペンダに相当)を対応付ける。
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true">
<targets>
<!-- ログファイル出力用ターゲット -->
<target xsi:type="File" name="(★ターゲット名1)"
fileName="(★ファイルパス)" encoding="utf-8" keepFileOpen="true"
layout="[${date:format=yyyy/MM/dd HH\:mm\:ss,fff}],[${level:uppercase=true}],[${threadid}],${message}"/>
<!-- (★ターゲット名2)、(★ターゲット名3)も同様 -->
</targets>
<rules>
<!-- Root ロガー相当 -->
<logger name="*" minlevel="Debug" writeTo="(★ターゲット名1)" />
<!-- 個別ロガー名 -->
<logger name="ACCESS" minlevel="Debug" writeTo="(★ターゲット名2)" />
<logger name="SQLTRACE" minlevel="Debug" writeTo="(★ターゲット名3)" />
</rules>
</nlog>- スキル
opentouryo-loggingを使わせる(log4net / NLog の切り替えも扱う)。 - 切り替えは設定だけで済むので、エージェントにユーザ・コードを書き換えさせない。
Tags: 再構築
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。