A volte si vuole ottenere l amedesima configurazione di logging per log con diverso nome, accomunati da una radice: xEs se usiamo NHibernate avremo NHibernate.Cfg.XmlHbmBinding,NHibernate.Cfg.Configuration, NHibernate.Cfg.SettingsFactory, NHibernate.Dialect.Dialect … e via discorrendo. E’ bello sapere che log4net supporta una gerarchia tra logger, e che questa è implicata dal nome: se voglio, per esempio, per tutti i logger di NH loggare solo i messaggi di fatal error posso scrivere:
<logger name="NHibernate" >
<level value="FATAL" />
</logger>
Ed tutti i logger NHibernate.* cadranno in questo caso. Ovviamente lo stesso lo posso fare con una sotto gerarchia, per esempio con name=”NHibernate.Cfg” riferirò tutti i log di configurazione.
Buono a sapersi, anche per quando si decidono i nomi dei logger nelle proprie applicazioni.