Mon objectif est de me connecter à Oracle 10g en utilisant log4net via la procédure stockée. J'ai effectué la configuration dans le fichier xml de configuration de log4net pour utiliser ado.net appender et utiliser la procédure stockée pour la connexion à db. Je veux enregistrer des exceptions dans db avec des paramètres comme le code d'erreur, le message d'erreur, etc. Veuillez me guider comment passer cet objet d'exception en utilisant C# CODE pour écrire en db. J'ai fait des configurations appropriées en XML pour les procédures stockées.Utilisation de log4net via des procédures stockées dans Oracle
Merci.
codeest la suivante:
string logFilePath = AppDomain.CurrentDomain.BaseDirectory + "log4netconfig.xml";
FileInfo finfo = new FileInfo(logFilePath);
log4net.Config.XmlConfigurator.ConfigureAndWatch(finfo);
ILog logger = LogManager.GetLogger("Exception.Logging");
log4net.ThreadContext.Properties["INNER_EXCEPTION"] = exception.InnerException.ToString();
log4net.ThreadContext.Properties["INNER_EXCEPTION"] = string.Empty;
log4net.ThreadContext.Properties["STACK_TRACE"] = exception.StackTrace.ToString();
log4net.ThreadContext.Properties["STACK_TRACE"] = string.Empty;
log4net.ThreadContext.Properties["MESSAGE"] = ((H2hException)exception).Message;
log4net.ThreadContext.Properties["CODE"] = "err-1010";
log4net.ThreadContext.Properties["MODULE"] = "NED.Development";
log4net.ThreadContext.Properties["COMPONENT"] = "Component";
log4net.ThreadContext.Properties["ADDITIONAL_MESSAGE"] = "msg";
logger.Debug("");
<parameter>
<parameterName value="@p_Error_Code" />
<dbType value="VARCHAR2" />
<size value="16" />
<!--<layout type="log4net.Layout.PatternLayout" value="%level" />-->
<conversionPattern value="%property{log4net:CODE}"/>
</parameter>
<parameter>
<parameterName value="@p_Error_Message" />
<dbType value="VARCHAR2" />
<size value="255" />
<!--<layout type="log4net.Layout.PatternLayout" value="%logger" />-->
<conversionPattern value="%property{log4net:MESSAGE}"/>
</parameter>
<parameter>
<parameterName value="@p_Inner_Exception" />
<dbType value="VARCHAR2" />
<size value="4000" />
<!--<layout type="log4net.Layout.PatternLayout" value="%thread" />-->
<conversionPattern value="%property{log4net:INNER_EXCEPTION}"/>
</parameter>
<parameter>
<parameterName value="@p_Module" />
<dbType value="VARCHAR2" />
<size value="225" />
<!--<layout type="log4net.Layout.PatternLayout" value="%message" />-->
<conversionPattern value="%property{log4net:MODULE}"/>
</parameter>
<parameter>
<parameterName value="@p_Component" />
<dbType value="VARCHAR2" />
<size value="225" />
<!--<layout type="log4net.Layout.ExceptionLayout" />-->
<conversionPattern value="%property{log4net:COMPONENT}"/>
</parameter>
<parameter>
<parameterName value="@p_Stack_Trace " />
<dbType value="VARCHAR2" />
<size value="4000" />
<!--<layout type="log4net.Layout.PatternLayout"/>-->
<conversionPattern value="%property{log4net:STACK_TRACE}"/>
</parameter>
<parameter>
<parameterName value=" @p_Additional_Message" />
<dbType value="VARCHAR2" />
<size value="4000" />
<!--<layout type="log4net.Layout.ExceptionLayout" />-->
<conversionPattern value="%property{log4net:ADDITIONAL_MESSAGE}"/>
</parameter>
</appender>
Veuillez expliquer "ne fonctionne pas" plus en profondeur. –
Vous vous connectez à partir de .Net à une base de données Oracle? Ou êtes-vous en train d'exécuter un code .Net à partir d'un déclencheur Oracle ou quelque chose? Votre mention d'une procédure stockée est source de confusion. Je ne vois même pas où vous avez configuré votre chaîne de connexion pour que log4net fonctionne avec un AdoNetAppender. – jonathanpeppers