Skip to content

Configure log4net from embedded resource log4net.xml in tests #2235

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Apr 13, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 1 addition & 45 deletions src/NHibernate.Test/App.config
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

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

<connectionStrings>
Expand Down Expand Up @@ -52,50 +51,7 @@
</session-factory>
</hibernate-configuration>

<log4net debug="false">

<!-- Appenders -->
<appender name="trace" type="log4net.Appender.TraceAppender, log4net">
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="console" type="log4net.Appender.ConsoleAppender, log4net">
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender, log4net" >
<param name="File" value="log.txt" />
<param name="AppendToFile" value="false" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>

<root>
<priority value="WARN" />
<appender-ref ref="console" />
</root>

<!-- Loggers -->
<logger name="NHibernate.Hql.Ast.ANTLR">
<priority value="OFF" />
</logger>
<logger name="NHibernate.SQL">
<level value="OFF" />
</logger>
<logger name="NHibernate.AdoNet.AbstractBatcher">
<level value="OFF" />
</logger>
<logger name="NHibernate.Tool.hbm2ddl.SchemaExport">
<level value="ERROR" />
</logger>

</log4net>
<!-- NOTE: log4net configuration is moved to log4net.xml -->

<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/></startup>
</configuration>
4 changes: 1 addition & 3 deletions src/NHibernate.Test/Hql/Ast/ParsingFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,6 @@ namespace NHibernate.Test.Hql.Ast
// [Test]
// public void BasicQuery()
// {
// XmlConfigurator.Configure();

// string input = "select o.id, li.id from NHibernate.Test.CompositeId.Order o join o.LineItems li";// join o.LineItems li";

// ISessionFactoryImplementor sfi = SetupSFI();
Expand Down Expand Up @@ -175,4 +173,4 @@ namespace NHibernate.Test.Hql.Ast
// }
// }
//}
}
}
2 changes: 0 additions & 2 deletions src/NHibernate.Test/Log4netConfiguration.cs

This file was deleted.

3 changes: 0 additions & 3 deletions src/NHibernate.Test/NHSpecificTest/NH1587/Fixture.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
using log4net;
using log4net.Config;
using log4net.Core;
using NHibernate.Cfg;
using NUnit.Framework;
Expand All @@ -12,7 +10,6 @@ public class Fixture
[Test]
public void Bug()
{
XmlConfigurator.Configure(LogManager.GetRepository(typeof(Fixture).Assembly));
var cfg = new Configuration();
if (TestConfigurationHelper.hibernateConfigFile != null)
cfg.Configure(TestConfigurationHelper.hibernateConfigFile);
Expand Down
1 change: 1 addition & 0 deletions src/NHibernate.Test/NHibernate.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
<None Remove="NHSpecificTest\NH3023\db-teardown.sql" />
<EmbeddedResource Include="NHSpecificTest\NH3023\db-seed.sql" />
<EmbeddedResource Include="NHSpecificTest\NH3023\db-teardown.sql" />
<EmbeddedResource Include="log4net.xml" />
<EmbeddedResource Include="TestEmbeddedConfig.cfg.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource>
Expand Down
7 changes: 0 additions & 7 deletions src/NHibernate.Test/TestCase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
using System.Data;
using System.Reflection;
using log4net;
using log4net.Config;
using NHibernate.Cfg;
using NHibernate.Connection;
using NHibernate.Engine;
Expand Down Expand Up @@ -56,12 +55,6 @@ protected virtual string MappingsAssembly

protected SchemaExport SchemaExport => _schemaExport ?? (_schemaExport = new SchemaExport(cfg));

static TestCase()
{
// Configure log4net here since configuration through an attribute doesn't always work.
XmlConfigurator.Configure(LogManager.GetRepository(typeof(TestCase).Assembly));
}

/// <summary>
/// Creates the tables used in this TestCase
/// </summary>
Expand Down
38 changes: 11 additions & 27 deletions src/NHibernate.Test/TestsContext.cs
Original file line number Diff line number Diff line change
@@ -1,50 +1,34 @@
#if NETCOREAPP2_0
using NUnit.Framework;

using NUnit.Framework;
using System.Configuration;
using System.IO;
using log4net.Repository.Hierarchy;
using System.Reflection;
using log4net;
using log4net.Config;
using NHibernate.Cfg;

namespace NHibernate.Test
{
[SetUpFixture]
public class TestsContext
{
private static bool ExecutingWithVsTest { get; } =
System.Reflection.Assembly.GetEntryAssembly()?.GetName().Name == "testhost";
private static readonly Assembly TestAssembly = typeof(TestsContext).Assembly;

[OneTimeSetUp]
public void RunBeforeAnyTests()
{
ConfigureLog4Net();

//When .NET Core App 2.0 tests run from VS/VSTest the entry assembly is "testhost.dll"
//so we need to explicitly load the configuration
if (ExecutingWithVsTest)
if (Assembly.GetEntryAssembly() != null)
{
var assemblyPath = Path.Combine(TestContext.CurrentContext.TestDirectory, Path.GetFileName(typeof(TestsContext).Assembly.Location));
ConfigurationProvider.Current = new SystemConfigurationProvider(ConfigurationManager.OpenExeConfiguration(assemblyPath));
ConfigurationProvider.Current = new SystemConfigurationProvider(ConfigurationManager.OpenExeConfiguration(TestAssembly.Location));
}

ConfigureLog4Net();
}

private static void ConfigureLog4Net()
{
var hierarchy = (Hierarchy)log4net.LogManager.GetRepository(typeof(TestsContext).Assembly);

var consoleAppender = new log4net.Appender.ConsoleAppender
{
Layout = new log4net.Layout.PatternLayout("%d{ABSOLUTE} %-5p %c{1}:%L - %m%n"),
};

((Logger)hierarchy.GetLogger("NHibernate.Hql.Ast.ANTLR")).Level = log4net.Core.Level.Off;
((Logger)hierarchy.GetLogger("NHibernate.SQL")).Level = log4net.Core.Level.Off;
((Logger)hierarchy.GetLogger("NHibernate.AdoNet.AbstractBatcher")).Level = log4net.Core.Level.Off;
((Logger)hierarchy.GetLogger("NHibernate.Tool.hbm2ddl.SchemaExport")).Level = log4net.Core.Level.Error;
hierarchy.Root.Level = log4net.Core.Level.Warn;
hierarchy.Root.AddAppender(consoleAppender);
hierarchy.Configured = true;
using (var log4NetXml = TestAssembly.GetManifestResourceStream("NHibernate.Test.log4net.xml"))
XmlConfigurator.Configure(LogManager.GetRepository(TestAssembly), log4NetXml);
}
}
}
#endif
6 changes: 0 additions & 6 deletions src/NHibernate.Test/TypesTest/TypeFactoryFixture.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using System;
using log4net;
using log4net.Repository.Hierarchy;
using NHibernate.Type;
using NUnit.Framework;

Expand All @@ -12,11 +11,6 @@ namespace NHibernate.Test.TypesTest
[TestFixture]
public class TypeFactoryFixture
{
public TypeFactoryFixture()
{
log4net.Config.XmlConfigurator.Configure(LogManager.GetRepository(typeof(TypeFactoryFixture).Assembly));
}

private static readonly ILog log = LogManager.GetLogger(typeof(TypeFactoryFixture));

/// <summary>
Expand Down
45 changes: 45 additions & 0 deletions src/NHibernate.Test/log4net.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8" ?>
<log4net debug="false">

<!-- Appenders -->
<appender name="trace" type="log4net.Appender.TraceAppender, log4net">
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="console" type="log4net.Appender.ConsoleAppender, log4net">
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender, log4net" >
<param name="File" value="log.txt" />
<param name="AppendToFile" value="false" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>

<root>
<priority value="WARN" />
<appender-ref ref="console" />
</root>

<!-- Loggers -->
<logger name="NHibernate.Hql.Ast.ANTLR">
<priority value="OFF" />
</logger>
<logger name="NHibernate.SQL">
<level value="OFF" />
</logger>
<logger name="NHibernate.AdoNet.AbstractBatcher">
<level value="OFF" />
</logger>
<logger name="NHibernate.Tool.hbm2ddl.SchemaExport">
<level value="ERROR" />
</logger>

</log4net>