Skip to content

Commit fb0f605

Browse files
committed
Configure log4net from embedded resource log4net.xml
1 parent 01effc3 commit fb0f605

File tree

5 files changed

+71
-66
lines changed

5 files changed

+71
-66
lines changed

src/NHibernate.Test/App.config

Lines changed: 1 addition & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
<configSections>
55
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
6-
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
76
</configSections>
87

98
<connectionStrings>
@@ -52,50 +51,7 @@
5251
</session-factory>
5352
</hibernate-configuration>
5453

55-
<log4net debug="false">
56-
57-
<!-- Appenders -->
58-
<appender name="trace" type="log4net.Appender.TraceAppender, log4net">
59-
<layout type="log4net.Layout.PatternLayout, log4net">
60-
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" />
61-
</layout>
62-
</appender>
63-
<appender name="console" type="log4net.Appender.ConsoleAppender, log4net">
64-
<layout type="log4net.Layout.PatternLayout, log4net">
65-
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" />
66-
</layout>
67-
</appender>
68-
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender, log4net" >
69-
<param name="File" value="log.txt" />
70-
<param name="AppendToFile" value="false" />
71-
<param name="RollingStyle" value="Date" />
72-
<param name="DatePattern" value="yyyy.MM.dd" />
73-
<param name="StaticLogFileName" value="true" />
74-
<layout type="log4net.Layout.PatternLayout, log4net">
75-
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
76-
</layout>
77-
</appender>
78-
79-
<root>
80-
<priority value="WARN" />
81-
<appender-ref ref="console" />
82-
</root>
83-
84-
<!-- Loggers -->
85-
<logger name="NHibernate.Hql.Ast.ANTLR">
86-
<priority value="OFF" />
87-
</logger>
88-
<logger name="NHibernate.SQL">
89-
<level value="OFF" />
90-
</logger>
91-
<logger name="NHibernate.AdoNet.AbstractBatcher">
92-
<level value="OFF" />
93-
</logger>
94-
<logger name="NHibernate.Tool.hbm2ddl.SchemaExport">
95-
<level value="ERROR" />
96-
</logger>
97-
98-
</log4net>
54+
<!-- NOTE: log4net configuration is moved to log4net.xml -->
9955

10056
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/></startup>
10157
</configuration>
Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,22 @@
1+
using System;
2+
using System.Reflection;
13
using log4net.Config;
2-
[assembly: XmlConfigurator()]
4+
using log4net.Repository;
5+
6+
[assembly: NHibernate.Test.Log4NetConfigurator()]
7+
8+
namespace NHibernate.Test
9+
{
10+
[AttributeUsage(AttributeTargets.Assembly)]
11+
[Serializable]
12+
public class Log4NetConfigurator: XmlConfiguratorAttribute
13+
{
14+
public override void Configure(Assembly sourceAssembly, ILoggerRepository targetRepository)
15+
{
16+
using (var manifestResourceStream = typeof(Log4NetConfigurator).Assembly.GetManifestResourceStream("NHibernate.Test.log4net.xml"))
17+
{
18+
XmlConfigurator.Configure(targetRepository, manifestResourceStream);
19+
}
20+
}
21+
}
22+
}

src/NHibernate.Test/NHibernate.Test.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
<None Remove="NHSpecificTest\NH3023\db-teardown.sql" />
2626
<EmbeddedResource Include="NHSpecificTest\NH3023\db-seed.sql" />
2727
<EmbeddedResource Include="NHSpecificTest\NH3023\db-teardown.sql" />
28+
<EmbeddedResource Include="log4net.xml" />
2829
<EmbeddedResource Include="TestEmbeddedConfig.cfg.xml">
2930
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
3031
</EmbeddedResource>

src/NHibernate.Test/TestsContext.cs

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#if NETCOREAPP2_0
44
using System.Configuration;
55
using System.IO;
6-
using log4net.Repository.Hierarchy;
6+
using log4net.Core;
77
using NHibernate.Cfg;
88
using NHibernate.Cfg.ConfigurationSchema;
99
#endif
@@ -26,10 +26,11 @@ public void RunBeforeAnyTests()
2626
//so we need to explicitly load the configuration
2727
if (ExecutingWithVsTest)
2828
{
29+
//To make sure logger is configured from test assembly (otherwise Environment tries to configure logger for NHibernate assembly)
30+
LoggerManager.GetRepository(typeof(TestsContext).Assembly);
2931
Environment.InitializeGlobalProperties(GetTestAssemblyHibernateConfiguration());
3032
}
3133

32-
ConfigureLog4Net();
3334
}
3435

3536
public static IHibernateConfiguration GetTestAssemblyHibernateConfiguration()
@@ -40,24 +41,6 @@ public static IHibernateConfiguration GetTestAssemblyHibernateConfiguration()
4041
var section = configuration.GetSection(CfgXmlHelper.CfgSectionName);
4142
return HibernateConfiguration.FromAppConfig(section.SectionInformation.GetRawXml());
4243
}
43-
44-
private static void ConfigureLog4Net()
45-
{
46-
var hierarchy = (Hierarchy)log4net.LogManager.GetRepository(typeof(TestsContext).Assembly);
47-
48-
var consoleAppender = new log4net.Appender.ConsoleAppender
49-
{
50-
Layout = new log4net.Layout.PatternLayout("%d{ABSOLUTE} %-5p %c{1}:%L - %m%n"),
51-
};
52-
53-
((Logger)hierarchy.GetLogger("NHibernate.Hql.Ast.ANTLR")).Level = log4net.Core.Level.Off;
54-
((Logger)hierarchy.GetLogger("NHibernate.SQL")).Level = log4net.Core.Level.Off;
55-
((Logger)hierarchy.GetLogger("NHibernate.AdoNet.AbstractBatcher")).Level = log4net.Core.Level.Off;
56-
((Logger)hierarchy.GetLogger("NHibernate.Tool.hbm2ddl.SchemaExport")).Level = log4net.Core.Level.Error;
57-
hierarchy.Root.Level = log4net.Core.Level.Warn;
58-
hierarchy.Root.AddAppender(consoleAppender);
59-
hierarchy.Configured = true;
60-
}
6144
#endif
6245
}
6346
}

src/NHibernate.Test/log4net.xml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<log4net debug="false">
3+
4+
<!-- Appenders -->
5+
<appender name="trace" type="log4net.Appender.TraceAppender, log4net">
6+
<layout type="log4net.Layout.PatternLayout, log4net">
7+
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" />
8+
</layout>
9+
</appender>
10+
<appender name="console" type="log4net.Appender.ConsoleAppender, log4net">
11+
<layout type="log4net.Layout.PatternLayout, log4net">
12+
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" />
13+
</layout>
14+
</appender>
15+
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender, log4net" >
16+
<param name="File" value="log.txt" />
17+
<param name="AppendToFile" value="false" />
18+
<param name="RollingStyle" value="Date" />
19+
<param name="DatePattern" value="yyyy.MM.dd" />
20+
<param name="StaticLogFileName" value="true" />
21+
<layout type="log4net.Layout.PatternLayout, log4net">
22+
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
23+
</layout>
24+
</appender>
25+
26+
<root>
27+
<priority value="WARN" />
28+
<appender-ref ref="console" />
29+
</root>
30+
31+
<!-- Loggers -->
32+
<logger name="NHibernate.Hql.Ast.ANTLR">
33+
<priority value="OFF" />
34+
</logger>
35+
<logger name="NHibernate.SQL">
36+
<level value="OFF" />
37+
</logger>
38+
<logger name="NHibernate.AdoNet.AbstractBatcher">
39+
<level value="OFF" />
40+
</logger>
41+
<logger name="NHibernate.Tool.hbm2ddl.SchemaExport">
42+
<level value="ERROR" />
43+
</logger>
44+
45+
</log4net>

0 commit comments

Comments
 (0)