Cómo integrar la función de registro de log4net en un sistema de gestión de derechos universal
La función de salida de registros a MSSQL se ha implementado en el código fuente, pero mi proyecto actualmente utiliza la base de datos Oracle, que no está implementada en el código fuente. Necesito implementarla yo mismo:
clase pública OracleAppender: BufferingAppenderSkeleton
{
// Campo
privado estático de solo lectura Tipo declarandoType = typeof(AdoNetAppender
<); p> cadena privada m_commandTexttipo de comando privado m_commandType = tipo de comando.
cadena privada m_connectionString
cadena privada m_connectionType; m_dbCommand;
conexión Oracle privada m_dbConnection;
protegida ArrayList m_parameters = nueva ArrayList();
privada bool m_reconnectOnError = false;
privada SecurityContext m_securityContext;
protected bool m_ usePreparedCommand;
private bool m_useTransactions = true;
// Métodos
anulación pública void ActivateOptions( )
{
base.ActivateOption();
this.m_usePreparedCommand = (this.m_commandText! = = this.m_commandText)m_commandText = null) amp ; amplificador (this.m_commandText! = nulo) amp; .m_commandText.Length gt;
if (this.m_securityContext == nulo)
{ p>
this.m_securityContext = SecurityContextProvider.DefaultProvider.m_ parámetros .Add(parameter);
}
cadena virtual protegida GetLogStatement(LoggingEvent logEvent)
{
if (this.Layout = = null)
{
this.Layout == null)
if (this .Layout == null)
{
this.Layout = = null) if (this.m_dbCommand !m_db
Comando ! = null)
{
prueba
{
this.m_dbCommand.Dispose();
} p>
catch
{
}
this.m_dbCommand = null
}
}
if (this.m_dbCommand ! = null)
{
prueba
{
foreach ( Parámetro OracleAppenderParameter en this.m_parameters)
{
intente
{
p> parámetro.prepare(this.m_dbCommand);
}
catch (Excepción excepción2)
{
this.ErrorHandler.Error("No se pudo agregar el parámetro de comando de la base de datos [" parámetro .ParameterName "]", excepción2);
throw
}
}
}
catch;
{
> prueba
{
this.m_dbCommand.Dispose()
} p>
catch
{
}
this.m_dbCommand.Dispose();
}
captura
{
}
this.m_dbCommand.Dispose()
}
esto; .m_dbCommand.Dispose()m_dbCommand = null;
}
}
}
si (this.m_dbCommand ! = null)
{
prueba
{
this.m_dbCommand.Prepare();
}
catch (Excepción excepción3)
{
this.m_dbCommand.Prepare();