My application uses two databases. Obviously, there is one session factory for each database; total two.
I have configured log4net for NHibernate to emit the generated SQL. But, this writes the log in single file for both the session factories. I want to configure different log file for each session factory.
Following is my code:
Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
hierarchy.Root.RemoveAllAppenders();
FileAppender fileAppender = new FileAppender();
fileAppender.Name = "NHFileAppender";
fileAppender.File = logFilePath;
fileAppender.AppendToFile = false;
fileAppender.LockingModel = new FileAppender.MinimalLock();
fileAppender.Layout = new PatternLayout("%d{yyyy-MM-dd HH:mm:ss}:%m%n%n");
fileAppender.ActivateOptions();
Logger logger = hierarchy.GetLogger("NHibernate.SQL") as Logger;
logger.Additivity = false;
logger.Level = Level.Debug;
logger.AddAppender(fileAppender);
hierarchy.Configured = true;
As you can see in above code, there is no any way to configure different log file for each session factory. If I am understanding this correctly, there should be a way to link/assign session factory to logger OR logger to session factory.
Is this possible? If yes, how?
As commented by @RomanKoliada, following is copied from here:
This is not exactly what I need; but better than what I was already using. I am still open for better solution.