By "each class that is loaded" do you mean each instance of the class needs to
write to its own company database?
CompanyService companyService = new CompanyService("AlphaCompany");
CompanyService companyService = new CompanyService("BetaCompany");
CompanyService companyService = new CompanyService("GammaCompany");
If that's the case you could extend ILog and add methods that accept an
identifer which would be used as the database table:
public class CompanyService
{
private readonly static DatabaseLog log = new
DatabaseLog(LogManager.GetLogger(typeof(CompanyService)));
private string companyName;
public CompanyService(string companyName)
{
this.companyName = companyName;
}
private int CalculateSomething()
{
log.Debug(companyName, "Starting to calculate something");
}
}
And/or you could create a custom AdoNetAppender that looks for a special MDC
value and understands what database table to map that to:
<appender name="CompanyAdoNetAppender">
<companyToTableMappings>
<companyToTable company="AlphaCompany" table="Alpha" />
<companyToTable company="BetaCompany" table="Beta" />
</companyToTableMappings>
</appender>
----- Original Message ----
From: Scott Carr <[EMAIL PROTECTED]>
To: [email protected]
Sent: Wednesday, June 4, 2008 1:14:26 PM
Subject: Log4Net Appender
I am using a static logger at the top of my class, and it is working fine.
Now I need to create an Appender that goes to a specific Company db.
This changes for each class that is loaded, though. Is there a way to
use the static logger in this fashion, where I can change the specific
instance for the Class Logger?
What would be the best way to implement this?
Should this go on the users list instead?
Thanks