logging-log4net-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ron Grabowski <rongrabow...@yahoo.com>
Subject Re: ADO.Net Appender connection troubles
Date Thu, 31 Jan 2008 05:53:51 GMT
I made a CreateConnection method that's implemented like this:

 virtual protected IDbConnection CreateConnection(Type connectionType, string connectionString)
 {
  IDbConnection connection = (IDbConnection)Activator.CreateInstance(connectionType);
  connection.ConnectionString = connectionString;
  return connection;
 }

Eventually you'll be able to override that method to create your own connection object. CreateConnection
fits into the re-initialize process when a reconnect is required.

----- Original Message ----
From: Ron Grabowski <rongrabowski@yahoo.com>
To: Log4NET User <log4net-user@logging.apache.org>
Sent: Wednesday, January 30, 2008 12:11:51 AM
Subject: Re: ADO.Net Appender connection troubles


The 
current 
implementation 
doesn't 
allow 
a 
sub-class 
to 
easily 
provide 
its 
own 
IDbConnection. 
You'll 
have 
to 
copy 
and 
paste 
the 
contents 
of 
AdoNetAppender 
and 
modify 
the 
code 
to 
fit 
your 
needs.

AdoNetAppender 
needs 
a 
little 
refactoring 
so 
things 
like 
this 
are 
possible.

----- 
Original 
Message 
----
From: 
Szymon 
Rozga 
<szymon.rozga@gmail.com>
To: 
Log4NET 
User 
<log4net-user@logging.apache.org>
Sent: 
Tuesday, 
January 
29, 
2008 
9:39:17 
PM
Subject: 
ADO.Net 
Appender 
connection 
troubles


I 
am 
trying 
to 
use 
the 
AdoNetAppender, 
but 
I 
am 
in 
an 
environment 
in
which 
the 
connection 
string 
is 
dynamic, 
depending 
on 
which 
of 
a 
series
of 
servers 
the 
app 
connects 
to. 
My 
idea 
is 
to 
get 
a 
reference 
to 
the
appender 
and 
reset 
the 
ConnectionString 
when 
my 
app 
knows 
which 
server
I 
am 
connecting 
to.

This 
sounds 
fine, 
but 
I 
only 
have 
access 
to 
an 
instance 
of 
an
IDbConnection. 
The 
ConnectionString 
property 
on 
that 
class 
returns 
the
connection 
string 
without 
the 
password, 
not 
surprisingly. 
This 
means
that 
when 
I 
set 
the 
ConnectionString 
property 
on 
the 
Appender 
and 
it
attempts 
to 
reconnect 
on 
error, 
it 
complains 
that 
I 
did 
not 
provide 
a
password.

Is 
it 
possible 
to 
set 
up 
the 
appender 
to 
somehow 
use 
a 
IDbConnection
instance 
instead 
of 
specifying 
the 
connection 
type 
and 
a 
connection
string 
and 
having 
log4net 
open 
another 
connection?

I 
have 
tried 
creating 
a 
subclass 
of 
AdoNetAppender 
exposing 
the
Connection 
property 
(so 
I 
am 
able 
to 
set 
the 
connection 
itself), 
but
that 
doesn't 
really 
fix 
it 
since 
it 
seems 
some 
internal 
state 
is 
being
held 
by 
AdoNetAppender. 
Allowing 
the 
class 
to 
reconnect 
on 
failure
tries 
to 
use 
the 
connection 
string, 
which 
doesn't 
really 
help.

Any 
ideas?

-Szymon







Mime
View raw message