gpt4 book ai didi

nlog - 当记录到数据库失败时如何强制nlog抛出异常?

转载 作者:行者123 更新时间:2023-12-03 14:50:41 24 4
gpt4 key购买 nike

当我关闭支持 nlog 的数据库时,没有任何内容被记录下来,而且 NLog 似乎解决了这个问题。有没有办法将它配置为引发和异常,或者至少登录一个记录失败的文本文件?

这是我的配置的样子:

<?xml version="1.0" ?>
<nlog autoReload="true" throwExceptions="true" internalLogFile="${basedir}/App_Data/nlog.txt" internalLogLevel="Debug"
internalLogToConsole="true">

<targets>
<!--Useful for debugging-->
<target name="consolelog" type="ColoredConsole"
layout="${date:format=HH\:mm\:ss}|${level}|${stacktrace}|${message}" />



<target name="databaselog" type="Database">

<dbProvider>System.Data.SqlClient</dbProvider>

<!-- database connection parameters -->
<!-- alternatively you could provide a single 'connectionstring' parameter -->
<connectionString>Data Source=.\SQLEXPRESSZ;Initial Catalog=aspnetdb;Integrated Security=SSPI</connectionString>

<commandText>
insert into NLog_Error ([time_stamp],[level],[host],[type],[source],[logger],[message],[stacktrace],[allxml]) values(@time_stamp,@level,@host,@type,@source,@logger,@message,@stacktrace,@allxml);
</commandText>

<parameter name="@time_stamp" layout="${utc_date}" />
<parameter name="@level" layout="${level}" />
<parameter name="@host" layout="${machinename}" />
<parameter name="@type" layout="${exception:format=type}" />
<parameter name="@source" layout="${callsite:className=true:fileName=false:includeSourcePath=false:methodName=false}" />
<parameter name="@logger" layout="${logger}" />
<parameter name="@message" layout="${message}" />
<parameter name="@stacktrace" layout="${exception:stacktrace}" />
<parameter name="@allxml" layout="${web_variables}" />

</target>

</targets>

<rules>

<logger name="*" minlevel="Info" writeTo="databaselog" />
</rules>

</nlog>

最佳答案

您可以通过以下方式强制 Nlog 在未到达 sql server 时引发异常

<nlog throwExceptions="true">
... your nlog config
</nlog>

更多信息在这里,

http://nlog-project.org/2010/09/05/new-exception-handling-rules-in-nlog-2-0.html

这是 v2.0 中的一项新功能,因此您需要 v2.0。

它在早期版本中不起作用。

还检查以下配置信息

https://github.com/NLog/NLog/wiki/Logging-Troubleshooting

这允许 Nlog 将它自己的异常记录到指定的文件中。

关于nlog - 当记录到数据库失败时如何强制nlog抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9183752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com