【发布时间】:2023-08-27 11:21:01
【问题描述】:
我正在尝试使用 NLog 记录到 Oracle 数据库,已经创建了表,但是当我尝试记录某些内容时出现异常:
ORA-00928:缺少 SELECT 关键字
我的 NLog.config 文件是:
<?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="filelog" type="File" fileName="C:/App_Data/Site.log"
layout="${date}: ${message}" />
<target name="databaselog" type="Database">
<dbProvider>Oracle.DataAccess.Client</dbProvider>
<!-- database connection parameters -->
<!-- alternatively you could provide a single 'connectionstring' parameter -->
<connectionString>DATA SOURCE=database;PERSIST SECURITY INFO=True;USER ID=user;Password=password;Validate Connection=true</connectionString>
<commandText>
insert into RS_LOGTABLE ([log_user],[log_level],[log_date],[log_message]) values(@log_user,@log_level,@log_date,@log_message);
</commandText>
<parameter name="@log_user" layout="${message}"/>
<parameter name="@log_level" layout="${message}"/>
<parameter name="@log_date" layout="${date}"/>
<parameter name="@log_message" layout="${message}"/>
</target>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="filelog" />
<logger name="*" minlevel="Trace" writeTo="databaselog" />
</rules>
</nlog>
当我这样做时会发生异常:
logger = LogManager.GetCurrentClassLogger();
logger.Debug("Teste logger");
我已经尝试过不带括号的插入并得到另一个异常:
**ORA-00936: missing expression**
【问题讨论】:
-
查看this page 上的 second 示例以获取 Oracle 示例,尽管它使用了
System.Data.OracleClient -
现在我得到 ORA-01036: 非法变量名/编号...