C#でのNlogログツールの使用
C#でのNlogログツールの使用
インストール
Nugetインストールにより、Nlogを検索し、NlogとNlogをインストールする.コンフィギュレーションテンプレートに相当します.
もちろん、プロジェクトのルートディレクトリの下にプロファイルNlogを作成することもできます.Nlog.configのプロパティでCopy to Output Directoryを設定する:Copy always
ベースディレクトリ構造
targetsの下には、ログに格納されているアドレス、名前、フォーマット、サイズなど、ログ関連パラメータを構成します.
rulesの下にターゲット出力ルールを構成すると、targetsの下に構成されたrulesで使用されます.
NLog.Config使用テンプレート
argetsとrulesの内容、テンプレート用のNugetでダウンロードしたNlogを添付します.config.
単純な使用
##構成情報
###基本構成・
Nlogルートノードでの構成
Level
FirstCharacter
Ordinal
Trace
T
0
Debug
D
1
Info
I
2
Warn
W
3
Error
E
4
Fatal
F
5
Off
O
6
ターゲット
####xsi:type
タイプを入力します.次のタイプをサポートします. ColoredConsole:カスタマイズ可能な色でログ・メッセージをコンソールに書き込みます. Console-ログ・メッセージをコンソールに書き込みます. Debug-シミュレーションターゲット-テスト用. File-ログ・メッセージを1つ以上のファイルに書き込みます. Mail-smtpプロトコルまたはフォルダを使用して、Eメールでログ・メールを送信します. Null-ログ・メッセージを破棄します.主にデバッグおよびベンチマークテストのための具体的なパラメータの説明 rules(ルール)
参考記事
https://blog.csdn.net/jun502525164/article/details/40352253
https://blog.csdn.net/xishining/article/details/85219755
https://www.cnblogs.com/itjeff/p/6088149.html
インストール
Nugetインストールにより、Nlogを検索し、NlogとNlogをインストールする.コンフィギュレーションテンプレートに相当します.
もちろん、プロジェクトのルートディレクトリの下にプロファイルNlogを作成することもできます.Nlog.configのプロパティでCopy to Output Directoryを設定する:Copy always
ベースディレクトリ構造
<nlog>
<targets>
<target>target>
<target>target>
targets>
<rules>
<logger>logger>
<logger>logger>
rules>
nlog>
targetsの下には、ログに格納されているアドレス、名前、フォーマット、サイズなど、ログ関連パラメータを構成します.
rulesの下にターゲット出力ルールを構成すると、targetsの下に構成されたrulesで使用されます.
NLog.Config使用テンプレート
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp
log-internal.log">
<variable name="myvar" value="myvalue"/>
<targets>
<target name="info" xsi:type="File" fileName="${basedir}/logs/info/log_${shortdate}.log" archiveAboveSize="500000" encoding="utf-8" layout="${longdate} ${callsite} [${level}]: ${message}"/>
<target name="debug" xsi:type="File" fileName="${basedir}/logs/debug/log_${shortdate}.log" archiveAboveSize="500000" encoding="utf-8" layout="${longdate} ${callsite} [${level}]: ${message}"/>
<target name="error" xsi:type="File" fileName="${basedir}/logs/error/log_${shortdate}.log" archiveAboveSize="500000" encoding="utf-8" layout="${longdate} ${callsite} [${level}]: ${message}"/>
<target name="trace" xsi:type="File" fileName="${basedir}/logs/trace/log_${shortdate}.log" archiveAboveSize="500000" encoding="utf-8" layout="${longdate} ${callsite} [${level}]: ${message}"/>
<target name="warn" xsi:type="File" fileName="${basedir}/logs/warn/log_${shortdate}.log" archiveAboveSize="500000" encoding="utf-8" layout="${longdate} ${callsite} [${level}]: ${message}"/>
<target name="console" xsi:type="ColoredConsole" encoding="utf-8" layout="${longdate} ${callsite} [${level}]: ${message}"/>
targets>
<rules>
<logger name="*" level="Debug" writeTo="debug" />
<logger name="*" level="Info" writeTo="info"/>
<logger name="*" level="Warn" writeTo="warn"/>
<logger name="*" level="Trace" writeTo="trace"/>
<logger name="*" level="Error" writeTo="error"/>
<logger name="*" minlevel="Trace" writeTo="console"/>
rules>
nlog>
argetsとrulesの内容、テンプレート用のNugetでダウンロードしたNlogを添付します.config.
単純な使用
NLog.Logger logger = Nlog.LogManager.GetCurrentClassLogger();
logger.Debug("********");
logger.Info("********");
logger.Warn("********");
logger.Error("********");
##構成情報
###基本構成・
Nlogルートノードでの構成
autoReload
:構成変更が自動的にロードされるかどうか.throwExceptions
:ログに異常が発生した場合に異常を放出する必要があるかどうか、true
ログに異常を記録するように構成された場合に異常がキャプチャされていないため、プログラムが停止します.internalLogLevel
:nlogログの実行ログ記録レベルを示す.internalLogFile
:nlogログの実行ログレコードの位置を示す../XXXX
により、プログラムの相対ディレクトリを構成することができる.ログレベルLevel
FirstCharacter
Ordinal
Trace
T
0
Debug
D
1
Info
I
2
Warn
W
3
Error
E
4
Fatal
F
5
Off
O
6
ターゲット
<targets async="true"> <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message}" />targets>
async
をtrue
に設定することで、ログを非同期で保存することができ、ログがビジネスパフォーマンスに影響を及ぼすことを防止できます.####xsi:type
タイプを入力します.次のタイプをサポートします.
<targets async=” Boolean”> //
targets>
<rules> <logger name="*" minlevel="Debug" writeTo="f" /> rules>
Nlog
ノードの下にrules
ノードを追加し、rules
ノードの下に複数のlogger
ノードを構成することができ、各logger
ノードは1つの制約である.name
:logger名、*
であればすべてのログに適用されることを示し、target
クラスのログ出力に特化したlogdemo.test
がある場合、logdemo.test.*
に設定できます.現在の制約では、logdemo.test
の名前空間の先頭のログ出力のみが許可されていることを示します.minlevel
:現在の制約の最小レベルを表し、その値以上のログレベルのみが記録されます.writeTo
:現在のルールがどのtarget
を制約しているかを示します.参考記事
https://blog.csdn.net/jun502525164/article/details/40352253
https://blog.csdn.net/xishining/article/details/85219755
https://www.cnblogs.com/itjeff/p/6088149.html