gpt4 book ai didi

NLog 没有写入数据库表

转载 作者:行者123 更新时间:2023-12-05 01:26:23 26 4
gpt4 key购买 nike

这是我的 NLog 配置文件。

<?xml version="1.0" ?>
<nlog autoReload="true" throwExceptions="true" internalLogLevel="Debug" internalLogToConsole="true"
internalLogFile="c:\\temp\\nlog.txt"
>

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

<target name="filelog" type="File" fileName="c:\\temp\\nlog1.txt"
layout="${date}: ${message}" />

<target name="eventlog" type="EventLog" source="My App" log="Application"
layout="${date}: ${message} ${stacktrace}" />

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

<dbProvider>sqlserver</dbProvider>

<!-- database connection parameters -->
<!-- alternatively you could provide a single 'connectionstring' parameter -->
<connectionString>Data Source=.\SQLEXPRESS;Initial Catalog=SnSolutions;User Id=sa;Password=test@1234@;</connectionString>
<!--<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MyTest;User Id=mytest;Password=mytest123;" providerName="System.Data.SqlClient" />-->

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

<parameter name="@time_stamp" layout="${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="Fatal" writeTo="eventlog" />
-->
<logger name="*" minlevel="Info" writeTo="filelog" />
<logger name="*" minlevel="Info" writeTo="databaselog" />
</rules>

</nlog>

这是我的 NLogLogger 类

public class NLogLogger 
{
private readonly Logger _logger;

public NLogLogger(Logger logger)
{

_logger = logger;
}

public NLogLogger()
{
StackFrame frame = new StackFrame(1, false);

_logger = LogManager.GetLogger(frame.GetMethod().DeclaringType.FullName);

}

public void Trace(string message)
{
_logger.Trace(message);
}

public void Debug(string message)
{
_logger.Debug(message);
}

public void Info(string message)
{
_logger.Info(message);
}

public void Warn(string message)
{
_logger.Warn(message);
}

public void Error(string message)
{
_logger.Error(message);
}

public void Fatal(string message)
{
_logger.Fatal(message);
}
}

我正在尝试通过以下方式使用它。

NLogLogger logger = new NLogLogger();

logger.Info("We're on the Index page for Activities");

但无法查看数据库中的任何记录,也无法查看文件系统中的任何错误。

请让我知道我缺少的部分。

提前致谢。

最佳答案

插入命令出错 - 1 不是有效的列名。

insert into NLog_Error (...[type],1,[logger]..) 

这里是 example关于记录到数据库。

关于NLog 没有写入数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20570859/

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