Perhaps I was not clear... "at NH startup look for log4net.dll (start-up mean just before instantiate the bytecode-provider)" That mean before anything else.
Before BuildSessionFactory NH have done ton of work. On Wed, Aug 4, 2010 at 12:37 AM, Patrick Earl <[email protected]> wrote: > In order to use log4net with Common.Logging, the > Common.Logging.Log4Net assembly is required. Is it acceptable for > users to need to add a reference to Common.Logging.Log4Net to their > code? If this was unacceptable, the Common.Logging.Log4Net assembly > could be embedded in the NHibernate assembly directly. It seems that > the approach taken historically was to document the need for the extra > assembly reference and not embed anything. > > I understand there is also sometimes a need to hook into the logging > layer independent of the logging provider being used. I propose that > there be an NHibernate LogManager class that is used all over the > NHibernate code to get an ILog instance. Providing log interception > at that point would be a simple matter of creating a class that > implements ILog and delegates to the underlying Common.Logging manager > but also throws events when messages are logged. The event mechanism > would be the same one powering events such as IPostLoadEventListener. > I assume some of the comments by Ayende were referring to NHProf... > would this design cover any needs there without significant > difficulty? > > For the start-up configuration, after looking at the code, my best > interpretation of what Fabio said is that the log initialization code > should go at the start of BuildSessionFactory (before the call to the > proxy factory factory config). This would ensure that logging is > properly enabled during the initialization process. > > I've already started re-integrating the old Common.Logging patch into > the trunk. I will work towards the design proposed here in the mean > time. > > Patrick Earl > > On Aug 2, 11:33 am, Fabio Maulo <[email protected]> wrote: > > Solution > > 1) add common logging > > 2) at NH startup look for log4net.dll (start-up mean just before > instantiate > > the bytecode-provider) > > 2a) where present autoconfigure common-logging/NH to work with log4net > > 3) for other logging framework we can just relay to common-logging > > configuration/restrictions. > -- Fabio Maulo
