NLOG阻止ASP.NET Core中的更新数据库
我在ASP.NET Core Web API项目中使用了NLOG。 在使用 nlog
时 这是我的应用程序中我的nlog.config文件:
<?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"
throwExceptions="true"
internalLogLevel="Trace"
internalLogFile="C:\Nlog\logs\internalLog.txt">
<targets>
<target xsi:type="Database"
name="dbTarget"
connectionString="${configsetting:item=ConnectionStrings.DefaultConnection}"
commandText="INSERT INTO [app].[TblApplicationLog](Logged,Message,Level,Exception,Logger,Url,UserName,ServerName,Ip,Controller,Action,Host,Application,Callsite,UserAuthenticated, Useragent)
VALUES (@datetime,@msg,@level,@exception,@logger,@url,@username,@servername,@ip,@controller,@action,@host,@application,@callsite,@userAuthenticated,@useragent)">
<parameter name="@application" layout="AspNetCoreNlog" />
<parameter name="@datetime" layout="${date}" />
<parameter name="@msg" layout="${message}" />
<parameter name="@level" layout="${level}" />
<parameter name="@exception" layout="${exception:innerFormat=Message,StackTrace}" />
<!--<parameter name="@trace" layout="${stacktrace}" />-->
<parameter name="@callsite" layout="${callsite}" />
<parameter name="@logger" layout="${logger}" />
<parameter name="@url" layout="${aspnet-request-url}" />
<parameter name="@username" layout="${aspnet-user-identity}" />
<parameter name="@servername" layout="${machinename}" />
<parameter name="@ip" layout="${aspnet-request-ip}" />
<parameter name="@controller" layout="${aspnet-mvc-controller}" />
<parameter name="@action" layout="${aspnet-mvc-action}" />
<parameter name="@host" layout="${aspnet-request-host}" />
<parameter name="@useragent" layout="${aspnet-request-useragent}" />
<parameter name="@userAuthenticated" layout="${aspnet-user-isauthenticated}" />
</target>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="dbTarget" />
</rules>
</nlog>
记录中的所有内容都可以正常工作,但是如果我添加新的迁移并想做更新database ,我会在Nuget Package Manager Console中遇到以下错误:
写信给记录器时发生了错误。 (超时到期 在完成操作或 服务器没有响应。)
注意:当我从解决方案中排除nlog.config文件时,update-database像往常一样工作正常,但是在我的解决方案中包含nlog.config文件时,update-database将无法正常工作
I'm using NLog in my ASP.NET Core Web API project.
I have and issue in Update-Database while using NLog
This is my NLog.Config file in my application :
<?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"
throwExceptions="true"
internalLogLevel="Trace"
internalLogFile="C:\Nlog\logs\internalLog.txt">
<targets>
<target xsi:type="Database"
name="dbTarget"
connectionString="${configsetting:item=ConnectionStrings.DefaultConnection}"
commandText="INSERT INTO [app].[TblApplicationLog](Logged,Message,Level,Exception,Logger,Url,UserName,ServerName,Ip,Controller,Action,Host,Application,Callsite,UserAuthenticated, Useragent)
VALUES (@datetime,@msg,@level,@exception,@logger,@url,@username,@servername,@ip,@controller,@action,@host,@application,@callsite,@userAuthenticated,@useragent)">
<parameter name="@application" layout="AspNetCoreNlog" />
<parameter name="@datetime" layout="${date}" />
<parameter name="@msg" layout="${message}" />
<parameter name="@level" layout="${level}" />
<parameter name="@exception" layout="${exception:innerFormat=Message,StackTrace}" />
<!--<parameter name="@trace" layout="${stacktrace}" />-->
<parameter name="@callsite" layout="${callsite}" />
<parameter name="@logger" layout="${logger}" />
<parameter name="@url" layout="${aspnet-request-url}" />
<parameter name="@username" layout="${aspnet-user-identity}" />
<parameter name="@servername" layout="${machinename}" />
<parameter name="@ip" layout="${aspnet-request-ip}" />
<parameter name="@controller" layout="${aspnet-mvc-controller}" />
<parameter name="@action" layout="${aspnet-mvc-action}" />
<parameter name="@host" layout="${aspnet-request-host}" />
<parameter name="@useragent" layout="${aspnet-request-useragent}" />
<parameter name="@userAuthenticated" layout="${aspnet-user-isauthenticated}" />
</target>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="dbTarget" />
</rules>
</nlog>
Everything in logging works fine but if I add a new migration and wanna do update-database, I get following error in NuGet Package Manager Console:
An error occurred while writing to logger(s). (Timeout expired. The
timeout period elapsed prior to completion of the operation or the
server is not responding.)
Note: When I exclude the Nlog.config file from my solution, Update-Database works fine like always, but with including Nlog.config file in my solution, Update-database won't work anymore
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我的错误是来自我的nlog.conif文件中的这条代码
在行编号5 =
throwException =“ true”
删除此行后,更新数据库
My mistake was from this line of code in my NLog.Conif file
in line number 5 =
throwException="true"
After I removed this line, update database done