Ich versuche NLog zu verwenden, um eine Oracle-Datenbank zu protokollieren, bereits erstellt die Tabelle, aber wenn ich versuche, etwas einzuloggen bekomme ich die Ausnahme:NLog zur Datenbank (Oracle)
ORA-00928: fehlende SELECT Stichwort
Meine NLog.config Datei ist:
<?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>
Und die Ausnahme tritt auf, wenn ich dies tun:
logger = LogManager.GetCurrentClassLogger();
logger.Debug("Teste logger");
ich schon versucht, den Einsatz ohne die Klammern zu tun und eine weitere Ausnahme erhalten:
**ORA-00936: missing expression**
Siehe das ** zweite ** Beispiel auf [dieser Seite] (http://nlog-project.org/documentation/v2.0.1/html/T_NLog_Targets_DatabaseTarget.htm) für ein Oracle-Beispiel, wenn auch eines, das 'System verwendet .Data.OracleClient' – stuartd
Jetzt bekomme ich ORA-01036: ungültige Variable Name/Nummer ... –