2

さて、私は自分のプロジェクトに NLog を実装しようとしていて、ターゲットを設定しました:

<target name="logfile" xsi:type="File" fileName="${basedir}/logs/${shortdate}/Report/log.txt" />

これは機能し、私のテストログを出力します。ただし、次のように変更shortdateするとlongdate:

<target name="logfile" xsi:type="File" fileName="${basedir}/logs/${longdate}/Report/log.txt" />

または${time}属性を使用すると、ログが取得されません。彼らのドキュメントによると、longdate両方timeとも有効である必要があります。何か不足していますか?それらは実際には有効ではありませんfileNameか?

4

1 に答える 1

3

${longdate} が無効なファイル名になると思われます (Windows では、/logs/01-10-2013 12:24:25.2567/Report/log.txt のように「:」を使用できません)。

nlog.config に以下を追加すると

<nlog 
    internalLogFile="c:\temp\nlogproblems.txt"  
    throwExceptions="true"  
    xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

この旨の警告が表示されます

2013-01-10 14:55:21.0436 非同期ハンドラーでのエラー例外 NLog.NLogRuntimeException: NLog で例外が発生しました ---> System.IO.FileNotFoundException: ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません。(HRESULT からの例外: 0x8007007B)

編集:ファイル時間の例を追加しました。

于 2013-01-10T20:00:31.500 に答える