Skip to content

INHibernateLogger question #3047

Closed
Closed
@JosepBalague

Description

@JosepBalague

Hi folks,

I use NH 5.3.1 on two projects: Asp.net core and Console.
I created a component that allows to use multiple data sources simultaneously (1 SQL, 1 Oracle) in each project.
I created a second component that wraps logging and add extra features. In this component I use your INHibernateLogger but I have an issue: I do not know the log line which database is refering to. For example:

hibernate-configuration #1: <session-factory name="dev_nhibernatetests1">
hibernate-configuration #2: <session-factory name="dev_nhibernatetests2">

NLog.config

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

	<targets>
		<target name="file" xsi:type="File"
            layout="${shortdate}|${date:format=HH\:mm\:ss}|${logger} ${message} ${exception}"
            fileName="D:\logs\dbtest.log" />
	</targets>

	<rules>
		<logger name="*" minlevel="Debug" writeTo="file" />
	</rules>
</nlog>

Acording previous NLog.config, dbtest.log result is:

2022-04-24|08:59:34|NHibernate.Dialect.Dialect Using dialect: JMRB.Db.Relational.MicrosoftDataSqlClient.MsSql2019Dialect 
(...)
2022-04-24|08:59:34|NHibernate.Dialect.Dialect Using dialect: NHibernate.Dialect.Oracle10gDialec

2022-04-24|09:09:31|NHibernate.Persister.Entity.AbstractEntityPersister  Insert 0: INSERT INTO ...
(...)
2022-04-24|09:09:45|NHibernate.Persister.Entity.AbstractEntityPersister  Insert 0: INSERT INTO ...

What I need is:

2022-04-24|08:59:34|NHibernate.Dialect.Dialect|dev_nhibernatetests1 Using dialect: JMRB.Db.Relational.MicrosoftDataSqlClient.MsSql2019Dialect 
(...)
2022-04-24|08:59:34|NHibernate.Dialect.Dialect|dev_nhibernatetests2 Using dialect: NHibernate.Dialect.Oracle10gDialec

2022-04-24|09:09:31|NHibernate.Persister.Entity.AbstractEntityPersister|dev_nhibernatetests1  Insert 0: INSERT INTO ...
(...)
2022-04-24|09:09:45|NHibernate.Persister.Entity.AbstractEntityPersister|dev_nhibernatetests2  Insert 0: INSERT INTO ...

Can I achieve this changing NLog.config? or can you expand INHibernateLogger?

public interface INHibernateLogger
{
	void Log(NHibernateLogLevel logLevel, NHibernateLogValues state, Exception exception);
	bool IsEnabled(NHibernateLogLevel logLevel);
		
	// For example:
	//(Configuration.Properties)
	IDictionary<string, string> Properties { get; set; }

	// or
	void Log(NHibernateLogLevel logLevel, NHibernateLogValues state, string sessionFactoryName, Exception exception);
}

Cheers

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions