NLogでデフォルトのレイアウトを使用すると、例外の名前だけが表示されます。 私はlog4jxmleventレイアウトが例外について何も印刷しないと言われました。 どのようなレイアウトが私を助けますか?NLogで例外を記録する際にスタックトレースを取得する方法は?
例コード:
try
{
throw new SystemException();
}
catch (Exception ex)
{
logger.Error("oi", ex);
}
デフォルト・レイアウト・出力:
2011-01-14 09:14:48.0343|ERROR|ConsoleApplication.Program|oi
log4jxmlevent出力:
<log4j:event logger="ConsoleApplication.Program"
level="ERROR"
timestamp="1295003776872"
thread="9">
<log4j:message>oi</log4j:message>
<log4j:NDC />
<log4j:locationInfo class="ConsoleApplication.Program"
method="Void Main(System.String[])"
file="C:\Users\User\Documents\Visual Studio 2010\Projects\ConsoleApplication\ConsoleApplication\Program.cs"
line="21" />
<nlog:eventSequenceNumber>3</nlog:eventSequenceNumber>
<nlog:locationInfo assembly="ConsoleApplication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<log4j:properties>
<log4j:data name="log4japp"
value="true" />
<log4j:data name="log4jmachinename"
value="MACHINE" />
</log4j:properties>
既存のレイアウトに加えて、このですか? – Shane
@Shane確かに、スタックトレース –
FYIだけが必要な場合を除き、この方法は廃止予定です。 https://github.com/NLog/NLog/wiki/How-to-Log-Exceptions – Clay