Skip to content

Commit a597006

Browse files
committed
Configure log4net from embedded resource log4net.xml
1 parent dceb7fa commit a597006

File tree

5 files changed

+69
-68
lines changed

5 files changed

+69
-68
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+
// Note: Attribute assembly configuration works only if first logger is created in the same assembly.
7+
// You can also force initialization by calling LoggerManager.GetRepository(assemblyWithAttribute)
8+
[assembly: NHibernate.Test.Log4NetConfigurator]
9+
10+
namespace NHibernate.Test
11+
{
12+
[AttributeUsage(AttributeTargets.Assembly)]
13+
[Serializable]
14+
public class Log4NetConfiguratorAttribute: XmlConfiguratorAttribute
15+
{
16+
public override void Configure(Assembly sourceAssembly, ILoggerRepository targetRepository)
17+
{
18+
using (var manifestResourceStream = typeof(Log4NetConfiguratorAttribute).Assembly.GetManifestResourceStream("NHibernate.Test.log4net.xml"))
19+
XmlConfigurator.Configure(targetRepository, manifestResourceStream);
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: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
#if NETCOREAPP2_0
2-
using NUnit.Framework;
32

3+
using NUnit.Framework;
44
using System.Configuration;
55
using System.IO;
6-
using log4net.Repository.Hierarchy;
76
using NHibernate.Cfg;
87

98
namespace NHibernate.Test
@@ -24,26 +23,6 @@ public void RunBeforeAnyTests()
2423
var assemblyPath = Path.Combine(TestContext.CurrentContext.TestDirectory, Path.GetFileName(typeof(TestsContext).Assembly.Location));
2524
ConfigurationProvider.Current = new SystemConfigurationProvider(ConfigurationManager.OpenExeConfiguration(assemblyPath));
2625
}
27-
28-
ConfigureLog4Net();
29-
}
30-
31-
private static void ConfigureLog4Net()
32-
{
33-
var hierarchy = (Hierarchy)log4net.LogManager.GetRepository(typeof(TestsContext).Assembly);
34-
35-
var consoleAppender = new log4net.Appender.ConsoleAppender
36-
{
37-
Layout = new log4net.Layout.PatternLayout("%d{ABSOLUTE} %-5p %c{1}:%L - %m%n"),
38-
};
39-
40-
((Logger)hierarchy.GetLogger("NHibernate.Hql.Ast.ANTLR")).Level = log4net.Core.Level.Off;
41-
((Logger)hierarchy.GetLogger("NHibernate.SQL")).Level = log4net.Core.Level.Off;
42-
((Logger)hierarchy.GetLogger("NHibernate.AdoNet.AbstractBatcher")).Level = log4net.Core.Level.Off;
43-
((Logger)hierarchy.GetLogger("NHibernate.Tool.hbm2ddl.SchemaExport")).Level = log4net.Core.Level.Error;
44-
hierarchy.Root.Level = log4net.Core.Level.Warn;
45-
hierarchy.Root.AddAppender(consoleAppender);
46-
hierarchy.Configured = true;
4726
}
4827
}
4928
}

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)