You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by bo...@apache.org on 2016/08/13 12:47:26 UTC

svn commit: r1756257 [1/2] - in /logging/log4net/trunk: ./ netstandard/ netstandard/log4net.tests/ netstandard/log4net/ src/ src/Appender/ src/Config/ src/Core/ src/Filter/ src/Layout/ src/Layout/Pattern/ src/ObjectRenderer/ src/Plugin/ src/Repository/...

Author: bodewig
Date: Sat Aug 13 12:47:25 2016
New Revision: 1756257

URL: http://svn.apache.org/viewvc?rev=1756257&view=rev
Log:
initial support for .NET Core by @chlowell - closes #16

Added:
    logging/log4net/trunk/.gitignore   (with props)
    logging/log4net/trunk/netstandard/
    logging/log4net/trunk/netstandard/global.json   (with props)
    logging/log4net/trunk/netstandard/log4net/
    logging/log4net/trunk/netstandard/log4net.netstandard.sln   (with props)
    logging/log4net/trunk/netstandard/log4net.tests/
    logging/log4net/trunk/netstandard/log4net.tests/ApplicationException.cs   (with props)
    logging/log4net/trunk/netstandard/log4net.tests/CompatibilityExtensions.cs   (with props)
    logging/log4net/trunk/netstandard/log4net.tests/ExpectedExceptionAttribute.cs   (with props)
    logging/log4net/trunk/netstandard/log4net.tests/log4net.tests.xproj   (with props)
    logging/log4net/trunk/netstandard/log4net.tests/project.json   (with props)
    logging/log4net/trunk/netstandard/log4net/CompatibilityExtensions.cs   (with props)
    logging/log4net/trunk/netstandard/log4net/log4net.xproj   (with props)
    logging/log4net/trunk/netstandard/log4net/project.json   (with props)
Modified:
    logging/log4net/trunk/src/Appender/AnsiColorTerminalAppender.cs
    logging/log4net/trunk/src/Appender/AppenderCollection.cs
    logging/log4net/trunk/src/Appender/AppenderSkeleton.cs
    logging/log4net/trunk/src/Appender/ConsoleAppender.cs
    logging/log4net/trunk/src/Appender/DebugAppender.cs
    logging/log4net/trunk/src/Appender/LocalSyslogAppender.cs
    logging/log4net/trunk/src/Appender/ManagedColoredConsoleAppender.cs
    logging/log4net/trunk/src/Appender/NetSendAppender.cs
    logging/log4net/trunk/src/Appender/OutputDebugStringAppender.cs
    logging/log4net/trunk/src/Appender/RemoteSyslogAppender.cs
    logging/log4net/trunk/src/Appender/TelnetAppender.cs
    logging/log4net/trunk/src/Appender/UdpAppender.cs
    logging/log4net/trunk/src/AssemblyInfo.cs
    logging/log4net/trunk/src/Config/BasicConfigurator.cs
    logging/log4net/trunk/src/Config/PluginAttribute.cs
    logging/log4net/trunk/src/Config/XmlConfigurator.cs
    logging/log4net/trunk/src/Core/DefaultRepositorySelector.cs
    logging/log4net/trunk/src/Core/ExceptionEvaluator.cs
    logging/log4net/trunk/src/Core/Level.cs
    logging/log4net/trunk/src/Core/LevelCollection.cs
    logging/log4net/trunk/src/Core/LocationInfo.cs
    logging/log4net/trunk/src/Core/LogException.cs
    logging/log4net/trunk/src/Core/LoggerManager.cs
    logging/log4net/trunk/src/Core/LoggingEvent.cs
    logging/log4net/trunk/src/Filter/StringMatchFilter.cs
    logging/log4net/trunk/src/Layout/Pattern/DatePatternConverter.cs
    logging/log4net/trunk/src/Layout/Pattern/ExceptionPatternConverter.cs
    logging/log4net/trunk/src/Layout/PatternLayout.cs
    logging/log4net/trunk/src/Layout/RawLayoutConverter.cs
    logging/log4net/trunk/src/Layout/XmlLayout.cs
    logging/log4net/trunk/src/Layout/XmlLayoutBase.cs
    logging/log4net/trunk/src/LogManager.cs
    logging/log4net/trunk/src/ObjectRenderer/RendererMap.cs
    logging/log4net/trunk/src/Plugin/PluginCollection.cs
    logging/log4net/trunk/src/Repository/Hierarchy/Logger.cs
    logging/log4net/trunk/src/Repository/Hierarchy/LoggerKey.cs
    logging/log4net/trunk/src/Repository/Hierarchy/XmlHierarchyConfigurator.cs
    logging/log4net/trunk/src/Util/ILogExtensions.cs
    logging/log4net/trunk/src/Util/LogLog.cs
    logging/log4net/trunk/src/Util/NativeError.cs
    logging/log4net/trunk/src/Util/OptionConverter.cs
    logging/log4net/trunk/src/Util/PatternParser.cs
    logging/log4net/trunk/src/Util/PatternString.cs
    logging/log4net/trunk/src/Util/PatternStringConverters/DatePatternConverter.cs
    logging/log4net/trunk/src/Util/PatternStringConverters/IdentityPatternConverter.cs
    logging/log4net/trunk/src/Util/PatternStringConverters/NewLinePatternConverter.cs
    logging/log4net/trunk/src/Util/PatternStringConverters/ProcessIdPatternConverter.cs
    logging/log4net/trunk/src/Util/PatternStringConverters/PropertyPatternConverter.cs
    logging/log4net/trunk/src/Util/PatternStringConverters/UserNamePatternConverter.cs
    logging/log4net/trunk/src/Util/PropertiesDictionary.cs
    logging/log4net/trunk/src/Util/ReadOnlyPropertiesDictionary.cs
    logging/log4net/trunk/src/Util/SystemInfo.cs
    logging/log4net/trunk/src/Util/SystemStringFormat.cs
    logging/log4net/trunk/src/Util/TextWriterAdapter.cs
    logging/log4net/trunk/src/Util/TypeConverters/ConversionNotSupportedException.cs
    logging/log4net/trunk/src/Util/TypeConverters/ConverterRegistry.cs
    logging/log4net/trunk/src/Util/TypeConverters/IPAddressConverter.cs
    logging/log4net/trunk/src/Util/TypeConverters/PatternStringConverter.cs
    logging/log4net/trunk/src/Util/TypeConverters/TypeConverter.cs
    logging/log4net/trunk/tests/src/Appender/RollingFileAppenderTest.cs
    logging/log4net/trunk/tests/src/Appender/SmtpPickupDirAppenderTest.cs
    logging/log4net/trunk/tests/src/Appender/TraceAppenderTest.cs
    logging/log4net/trunk/tests/src/Core/FixingTest.cs
    logging/log4net/trunk/tests/src/Core/StringFormatTest.cs
    logging/log4net/trunk/tests/src/Hierarchy/Hierarchy.cs
    logging/log4net/trunk/tests/src/Hierarchy/Logger.cs
    logging/log4net/trunk/tests/src/Hierarchy/XmlHierarchyConfiguratorTest.cs
    logging/log4net/trunk/tests/src/Layout/PatternLayoutTest.cs
    logging/log4net/trunk/tests/src/Layout/XmlLayoutTest.cs
    logging/log4net/trunk/tests/src/Util/SystemInfoTest.cs
    logging/log4net/trunk/tests/src/Utils.cs

Added: logging/log4net/trunk/.gitignore
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/.gitignore?rev=1756257&view=auto
==============================================================================
--- logging/log4net/trunk/.gitignore (added)
+++ logging/log4net/trunk/.gitignore Sat Aug 13 12:47:25 2016
@@ -0,0 +1,230 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+
+# User-specific files
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+build/
+bld/
+[Bb]in/
+[Oo]bj/
+
+# Visual Studio 2015 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUNIT
+*.VisualState.xml
+TestResult.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# DNX
+project.lock.json
+artifacts/
+
+*_i.c
+*_p.c
+*_i.h
+*.ilk
+*.meta
+*.obj
+*.pch
+*.pdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opensdf
+*.sdf
+*.cachefile
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# JustCode is a .NET coding add-in
+.JustCode
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# TODO: Comment the next line if you want to checkin your web deploy settings 
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# NuGet Packages
+*.nupkg
+# The packages folder can be ignored because of Package Restore
+**/packages/*
+# except build/, which is used as an MSBuild target.
+!**/packages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/packages/repositories.config
+
+# Windows Azure Build Output
+csx/
+*.build.csdef
+
+# Windows Azure Emulator
+efc/
+rfc/
+
+# Windows Store app package directory
+AppPackages/
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!*.[Cc]ache/
+
+# Others
+ClientBin/
+[Ss]tyle[Cc]op.*
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.pfx
+*.publishsettings
+node_modules/
+orleans.codegen.cs
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+
+# SQL Server files
+*.mdf
+*.ldf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+
+# FAKE - F# Make
+.fake/
\ No newline at end of file

Propchange: logging/log4net/trunk/.gitignore
------------------------------------------------------------------------------
    svn:eol-style = native

Added: logging/log4net/trunk/netstandard/global.json
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/netstandard/global.json?rev=1756257&view=auto
==============================================================================
--- logging/log4net/trunk/netstandard/global.json (added)
+++ logging/log4net/trunk/netstandard/global.json Sat Aug 13 12:47:25 2016
@@ -0,0 +1,3 @@
+{
+    "projects": [ "log4net", "log4net.tests" ]
+}

Propchange: logging/log4net/trunk/netstandard/global.json
------------------------------------------------------------------------------
    svn:eol-style = native

Added: logging/log4net/trunk/netstandard/log4net.netstandard.sln
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/netstandard/log4net.netstandard.sln?rev=1756257&view=auto
==============================================================================
--- logging/log4net/trunk/netstandard/log4net.netstandard.sln (added)
+++ logging/log4net/trunk/netstandard/log4net.netstandard.sln Sat Aug 13 12:47:25 2016
@@ -0,0 +1,34 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "log4net", "log4net\log4net.xproj", "{00764202-B361-4BC8-A1B9-01D87F9D2D51}"
+EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "log4net.tests", "log4net.tests\log4net.tests.xproj", "{6A78D53B-C864-4316-AA00-F2EBFE975223}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4BB38D1C-1862-432B-881C-925714F7F997}"
+	ProjectSection(SolutionItems) = preProject
+		global.json = global.json
+		nuget.config = nuget.config
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{00764202-B361-4BC8-A1B9-01D87F9D2D51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{00764202-B361-4BC8-A1B9-01D87F9D2D51}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{00764202-B361-4BC8-A1B9-01D87F9D2D51}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{00764202-B361-4BC8-A1B9-01D87F9D2D51}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6A78D53B-C864-4316-AA00-F2EBFE975223}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6A78D53B-C864-4316-AA00-F2EBFE975223}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6A78D53B-C864-4316-AA00-F2EBFE975223}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6A78D53B-C864-4316-AA00-F2EBFE975223}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

Propchange: logging/log4net/trunk/netstandard/log4net.netstandard.sln
------------------------------------------------------------------------------
    svn:eol-style = native

Added: logging/log4net/trunk/netstandard/log4net.tests/ApplicationException.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/netstandard/log4net.tests/ApplicationException.cs?rev=1756257&view=auto
==============================================================================
--- logging/log4net/trunk/netstandard/log4net.tests/ApplicationException.cs (added)
+++ logging/log4net/trunk/netstandard/log4net.tests/ApplicationException.cs Sat Aug 13 12:47:25 2016
@@ -0,0 +1,8 @@
+using System;
+
+namespace log4net.Tests
+{
+    public class ApplicationException : Exception
+    {
+    }
+}

Propchange: logging/log4net/trunk/netstandard/log4net.tests/ApplicationException.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Added: logging/log4net/trunk/netstandard/log4net.tests/CompatibilityExtensions.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/netstandard/log4net.tests/CompatibilityExtensions.cs?rev=1756257&view=auto
==============================================================================
--- logging/log4net/trunk/netstandard/log4net.tests/CompatibilityExtensions.cs (added)
+++ logging/log4net/trunk/netstandard/log4net.tests/CompatibilityExtensions.cs Sat Aug 13 12:47:25 2016
@@ -0,0 +1,19 @@
+using System;
+using System.IO;
+using System.Reflection;
+using System.Threading;
+
+namespace log4net
+{
+    internal static class CompatibilityExtensions
+    {
+        public static void Close(this Mutex mutex) => mutex.Dispose();
+        public static void Close(this Stream stream) => stream.Dispose();
+        public static void Close(this StreamReader streamReader) => streamReader.Dispose();
+
+        public static ConstructorInfo GetConstructor(this Type type, BindingFlags bindingAttr, object binder, Type[] types, object[] modifiers)
+        {
+            return type.GetConstructor(types);
+        }
+    }
+}

Propchange: logging/log4net/trunk/netstandard/log4net.tests/CompatibilityExtensions.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Added: logging/log4net/trunk/netstandard/log4net.tests/ExpectedExceptionAttribute.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/netstandard/log4net.tests/ExpectedExceptionAttribute.cs?rev=1756257&view=auto
==============================================================================
--- logging/log4net/trunk/netstandard/log4net.tests/ExpectedExceptionAttribute.cs (added)
+++ logging/log4net/trunk/netstandard/log4net.tests/ExpectedExceptionAttribute.cs Sat Aug 13 12:47:25 2016
@@ -0,0 +1,66 @@
+// https://github.com/nunit/nunit-csharp-samples/blob/master/ExpectedExceptionExample/ExpectedExceptionAttribute.cs
+
+using System;
+using NUnit.Framework.Interfaces;
+using NUnit.Framework.Internal;
+using NUnit.Framework.Internal.Commands;
+
+namespace NUnit.Framework
+{
+    /// <summary>
+    /// A simple ExpectedExceptionAttribute
+    /// </summary>
+    [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
+    public class ExpectedExceptionAttribute : NUnitAttribute, IWrapTestMethod
+    {
+        private readonly Type _expectedExceptionType;
+
+        public ExpectedExceptionAttribute(Type type)
+        {
+            _expectedExceptionType = type;
+        }
+
+        public TestCommand Wrap(TestCommand command)
+        {
+            return new ExpectedExceptionCommand(command, _expectedExceptionType);
+        }
+
+        private class ExpectedExceptionCommand : DelegatingTestCommand
+        {
+            private readonly Type _expectedType;
+
+            public ExpectedExceptionCommand(TestCommand innerCommand, Type expectedType)
+                : base(innerCommand)
+            {
+                _expectedType = expectedType;
+            }
+
+            public override TestResult Execute(TestExecutionContext context)
+            {
+                Type caughtType = null;
+
+                try
+                {
+                    innerCommand.Execute(context);
+                }
+                catch (Exception ex)
+                {
+                    if (ex is NUnitException)
+                        ex = ex.InnerException;
+                    caughtType = ex.GetType();
+                }
+
+                if (caughtType == _expectedType)
+                    context.CurrentResult.SetResult(ResultState.Success);
+                else if (caughtType != null)
+                    context.CurrentResult.SetResult(ResultState.Failure,
+                        string.Format("Expected {0} but got {1}", _expectedType.Name, caughtType.Name));
+                else
+                    context.CurrentResult.SetResult(ResultState.Failure,
+                        string.Format("Expected {0} but no exception was thrown", _expectedType.Name));
+
+                return context.CurrentResult;
+            }
+        }
+    }
+}

Propchange: logging/log4net/trunk/netstandard/log4net.tests/ExpectedExceptionAttribute.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Added: logging/log4net/trunk/netstandard/log4net.tests/log4net.tests.xproj
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/netstandard/log4net.tests/log4net.tests.xproj?rev=1756257&view=auto
==============================================================================
--- logging/log4net/trunk/netstandard/log4net.tests/log4net.tests.xproj (added)
+++ logging/log4net/trunk/netstandard/log4net.tests/log4net.tests.xproj Sat Aug 13 12:47:25 2016
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
+    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
+  </PropertyGroup>
+  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>6a78d53b-c864-4316-aa00-f2ebfe975223</ProjectGuid>
+    <RootNamespace>log4net.tests</RootNamespace>
+    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
+    <OutputPath Condition="'$(OutputPath)'=='' ">..\..\build\netstandard\</OutputPath>
+  </PropertyGroup>
+  <ItemGroup>
+    <Compile Include="../../tests/src/*.cs" />
+    <Compile Include="../../tests/src/Appender/AppenderCollectionTest.cs" />
+    <Compile Include="../../tests/src/Appender/BufferingAppenderTest.cs" />
+    <Compile Include="../../tests/src/Appender/CountingAppender.cs" />
+    <Compile Include="../../tests/src/Appender/RollingFileAppenderTest.cs" />
+    <Compile Include="../../tests/src/Appender/SmtpPickupDirAppenderTest.cs" />
+    <Compile Include="../../tests/src/Appender/StringAppender.cs" />
+    <Compile Include="../../tests/src/Appender/TraceAppenderTest.cs" />
+    <Compile Include="../../tests/src/Context/ThreadContextTest.cs" />
+    <Compile Include="../../tests/src/Core/**/*.cs" />
+    <Compile Include="../../tests/src/DateFormatter/**/*.cs" />
+    <Compile Include="../../tests/src/Hierarchy/**/*.cs" />
+    <Compile Include="../../tests/src/Layout/**/*.cs" />
+    <Compile Include="../../tests/src/LoggerRepository/**/*.cs" />
+    <Compile Include="../../tests/src/Util/CyclicBufferTest.cs" />
+    <Compile Include="../../tests/src/Util/LogLogTest.cs" />
+    <Compile Include="../../tests/src/Util/PatternConverterTest.cs" />
+    <Compile Include="../../tests/src/Util/RandomStringPatternConverterTest.cs" />
+    <Compile Include="../../tests/src/Util/SystemInfoTest.cs" />
+    <Compile Include="../../tests/src/Util/TransformTest.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
+  </ItemGroup>
+  <PropertyGroup>
+    <SchemaVersion>2.0</SchemaVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
+    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
+  </PropertyGroup>
+  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
+</Project>
\ No newline at end of file

Propchange: logging/log4net/trunk/netstandard/log4net.tests/log4net.tests.xproj
------------------------------------------------------------------------------
    svn:eol-style = native

Added: logging/log4net/trunk/netstandard/log4net.tests/project.json
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/netstandard/log4net.tests/project.json?rev=1756257&view=auto
==============================================================================
--- logging/log4net/trunk/netstandard/log4net.tests/project.json (added)
+++ logging/log4net/trunk/netstandard/log4net.tests/project.json Sat Aug 13 12:47:25 2016
@@ -0,0 +1,44 @@
+{
+  "version": "1.0.0-*",
+  "buildOptions": {
+    "compile": [
+      "../../tests/src/*.cs",
+      "../../tests/src/Appender/AppenderCollectionTest.cs",
+      "../../tests/src/Appender/BufferingAppenderTest.cs",
+      "../../tests/src/Appender/CountingAppender.cs",
+      "../../tests/src/Appender/MemoryAppenderTest.cs",
+      "../../tests/src/Appender/RollingFileAppenderTest.cs",
+      "../../tests/src/Appender/SmtpPickupDirAppenderTest.cs",
+      "../../tests/src/Appender/StringAppender.cs",
+      "../../tests/src/Appender/TraceAppenderTest.cs",
+      "../../tests/src/Context/ThreadContextTest.cs",
+      "../../tests/src/Core/**/*.cs",
+      "../../tests/src/DateFormatter/**/*.cs",
+      "../../tests/src/Hierarchy/**/*.cs",
+      "../../tests/src/Layout/**/*.cs",
+      "../../tests/src/LoggerRepository/**/*.cs",
+      "../../tests/src/Util/CyclicBufferTest.cs",
+      "../../tests/src/Util/LogLogTest.cs",
+      "../../tests/src/Util/PatternConverterTest.cs",
+      "../../tests/src/Util/RandomStringPatternConverterTest.cs",
+      "../../tests/src/Util/SystemInfoTest.cs",
+      "../../tests/src/Util/TransformTest.cs"
+    ],
+    "define": [ "NETSTANDARD1_3" ]
+  },
+  "frameworks": {
+    "netcoreapp1.0": {
+      "dependencies": {
+        "Microsoft.NETCore.App": {
+          "version": "1.0.0",
+          "type": "platform"
+        },
+        "dotnet-test-nunit": "3.4.0-beta-1",
+        "log4net": "3.0.0",
+        "NUnit": "3.4.1"
+      },
+      "imports": [ "portable-net45+win8" ]
+    }
+  },
+  "testRunner": "nunit"
+}

Propchange: logging/log4net/trunk/netstandard/log4net.tests/project.json
------------------------------------------------------------------------------
    svn:eol-style = native

Added: logging/log4net/trunk/netstandard/log4net/CompatibilityExtensions.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/netstandard/log4net/CompatibilityExtensions.cs?rev=1756257&view=auto
==============================================================================
--- logging/log4net/trunk/netstandard/log4net/CompatibilityExtensions.cs (added)
+++ logging/log4net/trunk/netstandard/log4net/CompatibilityExtensions.cs Sat Aug 13 12:47:25 2016
@@ -0,0 +1,34 @@
+#if NETSTANDARD1_3
+
+using System;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Reflection;
+using System.Threading;
+using System.Xml;
+
+namespace log4net
+{
+    internal static class CompatibilityExtensions
+    {
+        public static void Close(this Mutex mutex) => mutex.Dispose();
+        public static void Close(this Socket socket) => socket.Dispose();
+        public static void Close(this Stream stream) => stream.Dispose();
+        public static void Close(this StreamWriter streamWriter) => streamWriter.Dispose();
+        public static void Close(this UdpClient client) => client.Dispose();
+        public static void Close(this WebResponse response) => response.Dispose();
+        public static void Close(this XmlWriter xmlWriter) => xmlWriter.Dispose();
+
+        public static Attribute[] GetCustomAttributes(this Type type, Type other, bool inherit) => type.GetTypeInfo().GetCustomAttributes(other, inherit).ToArray();
+        public static bool IsAssignableFrom(this Type type, Type other) => type.GetTypeInfo().IsAssignableFrom(other.GetTypeInfo());
+        public static bool IsSubclassOf(this Type type, Type t) => type.GetTypeInfo().IsSubclassOf(t);
+
+        public static string ToLower(this string s, CultureInfo cultureInfo) => cultureInfo.TextInfo.ToLower(s);
+        public static string ToUpper(this string s, CultureInfo cultureInfo) => cultureInfo.TextInfo.ToUpper(s);
+    }
+}
+
+#endif

Propchange: logging/log4net/trunk/netstandard/log4net/CompatibilityExtensions.cs
------------------------------------------------------------------------------
    svn:eol-style = native

Added: logging/log4net/trunk/netstandard/log4net/log4net.xproj
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/netstandard/log4net/log4net.xproj?rev=1756257&view=auto
==============================================================================
--- logging/log4net/trunk/netstandard/log4net/log4net.xproj (added)
+++ logging/log4net/trunk/netstandard/log4net/log4net.xproj Sat Aug 13 12:47:25 2016
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
+    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
+  </PropertyGroup>
+  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>00764202-b361-4bc8-a1b9-01d87f9d2d51</ProjectGuid>
+    <RootNamespace>log4net</RootNamespace>
+    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
+    <OutputPath Condition="'$(OutputPath)'=='' ">..\..\build\netstandard\</OutputPath>
+  </PropertyGroup>
+  <ItemGroup>
+    <Compile Include="*.cs" />
+    <!--<Compile Include="../../src/Appender/AdoNetAppender.cs" />-->
+    <Compile Include="../../src/Appender/AnsiColorTerminalAppender.cs" />
+    <Compile Include="../../src/Appender/AppenderCollection.cs" />
+    <Compile Include="../../src/Appender/AppenderSkeleton.cs" />
+    <!--<Compile Include="../../src/Appender/AspNetTraceAppender.cs" />-->
+    <Compile Include="../../src/Appender/BufferingAppenderSkeleton.cs" />
+    <Compile Include="../../src/Appender/BufferingForwardingAppender.cs" />
+    <!--<Compile Include="../../src/Appender/ColoredConsoleAppender.cs" />-->
+    <Compile Include="../../src/Appender/ConsoleAppender.cs" />
+    <Compile Include="../../src/Appender/DebugAppender.cs" />
+    <!--<Compile Include="../../src/Appender/EventLogAppender.cs" />-->
+    <Compile Include="../../src/Appender/FileAppender.cs" />
+    <Compile Include="../../src/Appender/ForwardingAppender.cs" />
+    <Compile Include="../../src/Appender/IAppender.cs" />
+    <Compile Include="../../src/Appender/IBulkAppender.cs" />
+    <Compile Include="../../src/Appender/LocalSyslogAppender.cs" />
+    <Compile Include="../../src/Appender/ManagedColoredConsoleAppender.cs" />
+    <Compile Include="../../src/Appender/MemoryAppender.cs" />
+    <!--<Compile Include="../../src/Appender/NetSendAppender.cs" />-->
+    <Compile Include="../../src/Appender/OutputDebugStringAppender.cs" />
+    <Compile Include="../../src/Appender/RemoteSyslogAppender.cs" />
+    <!--<Compile Include="../../src/Appender/RemotingAppender.cs" />-->
+    <Compile Include="../../src/Appender/RollingFileAppender.cs" />
+    <!--<Compile Include="../../src/Appender/SmtpAppender.cs" />-->
+    <Compile Include="../../src/Appender/SmtpPickupDirAppender.cs" />
+    <Compile Include="../../src/Appender/TelnetAppender.cs" />
+    <Compile Include="../../src/Appender/TextWriterAppender.cs" />
+    <Compile Include="../../src/Appender/TraceAppender.cs" />
+    <Compile Include="../../src/Appender/UdpAppender.cs" />
+    <Compile Include="../../src/AssemblyInfo.cs" />
+    <Compile Include="../../src/AssemblyVersionInfo.cs" />
+    <Compile Include="../../src/Config/AliasDomainAttribute.cs" />
+    <Compile Include="../../src/Config/AliasRepositoryAttribute.cs" />
+    <Compile Include="../../src/Config/BasicConfigurator.cs" />
+    <Compile Include="../../src/Config/ConfiguratorAttribute.cs" />
+    <Compile Include="../../src/Config/DomainAttribute.cs" />
+    <!--<Compile Include="../../src/Config/DOMConfigurator.cs" />-->
+    <Compile Include="../../src/Config/DOMConfiguratorAttribute.cs" />
+    <!--<Compile Include="../../src/Config/Log4NetConfigurationSectionHandler.cs" />-->
+    <Compile Include="../../src/Config/PluginAttribute.cs" />
+    <Compile Include="../../src/Config/RepositoryAttribute.cs" />
+    <Compile Include="../../src/Config/SecurityContextProviderAttribute.cs" />
+    <Compile Include="../../src/Config/XmlConfigurator.cs" />
+    <Compile Include="../../src/Config/XmlConfiguratorAttribute.cs" />
+    <Compile Include="../../src/Core/CompactRepositorySelector.cs" />
+    <Compile Include="../../src/Core/DefaultRepositorySelector.cs" />
+    <Compile Include="../../src/Core/ErrorCode.cs" />
+    <Compile Include="../../src/Core/ExceptionEvaluator.cs" />
+    <Compile Include="../../src/Core/IAppenderAttachable.cs" />
+    <Compile Include="../../src/Core/IErrorHandler.cs" />
+    <Compile Include="../../src/Core/IFixingRequired.cs" />
+    <Compile Include="../../src/Core/ILogger.cs" />
+    <Compile Include="../../src/Core/ILoggerWrapper.cs" />
+    <Compile Include="../../src/Core/IOptionHandler.cs" />
+    <Compile Include="../../src/Core/IRepositorySelector.cs" />
+    <Compile Include="../../src/Core/ITriggeringEventEvaluator.cs" />
+    <Compile Include="../../src/Core/Level.cs" />
+    <Compile Include="../../src/Core/LevelCollection.cs" />
+    <Compile Include="../../src/Core/LevelEvaluator.cs" />
+    <Compile Include="../../src/Core/LevelMap.cs" />
+    <Compile Include="../../src/Core/LocationInfo.cs" />
+    <Compile Include="../../src/Core/LogException.cs" />
+    <Compile Include="../../src/Core/LoggerManager.cs" />
+    <Compile Include="../../src/Core/LoggerWrapperImpl.cs" />
+    <Compile Include="../../src/Core/LoggingEvent.cs" />
+    <Compile Include="../../src/Core/LogImpl.cs" />
+    <Compile Include="../../src/Core/MethodItem.cs" />
+    <Compile Include="../../src/Core/SecurityContext.cs" />
+    <Compile Include="../../src/Core/SecurityContextProvider.cs" />
+    <Compile Include="../../src/Core/StackFrameItem.cs" />
+    <Compile Include="../../src/Core/TimeEvaluator.cs" />
+    <Compile Include="../../src/Core/WrapperMap.cs" />
+    <Compile Include="../../src/DateFormatter/AbsoluteTimeDateFormatter.cs" />
+    <Compile Include="../../src/DateFormatter/DateTimeDateFormatter.cs" />
+    <Compile Include="../../src/DateFormatter/IDateFormatter.cs" />
+    <Compile Include="../../src/DateFormatter/Iso8601DateFormatter.cs" />
+    <Compile Include="../../src/DateFormatter/SimpleDateFormatter.cs" />
+    <Compile Include="../../src/Filter/DenyAllFilter.cs" />
+    <Compile Include="../../src/Filter/FilterDecision.cs" />
+    <Compile Include="../../src/Filter/FilterSkeleton.cs" />
+    <Compile Include="../../src/Filter/IFilter.cs" />
+    <Compile Include="../../src/Filter/LevelMatchFilter.cs" />
+    <Compile Include="../../src/Filter/LevelRangeFilter.cs" />
+    <Compile Include="../../src/Filter/LoggerMatchFilter.cs" />
+    <Compile Include="../../src/Filter/MdcFilter.cs" />
+    <Compile Include="../../src/Filter/NdcFilter.cs" />
+    <Compile Include="../../src/Filter/PropertyFilter.cs" />
+    <Compile Include="../../src/Filter/StringMatchFilter.cs" />
+    <Compile Include="../../src/GlobalContext.cs" />
+    <Compile Include="../../src/ILog.cs" />
+    <Compile Include="../../src/Layout/DynamicPatternLayout.cs" />
+    <Compile Include="../../src/Layout/ExceptionLayout.cs" />
+    <Compile Include="../../src/Layout/ILayout.cs" />
+    <Compile Include="../../src/Layout/IRawLayout.cs" />
+    <Compile Include="../../src/Layout/Layout2RawLayoutAdapter.cs" />
+    <Compile Include="../../src/Layout/LayoutSkeleton.cs" />
+    <Compile Include="../../src/Layout/PatternLayout.cs" />
+    <Compile Include="../../src/Layout/Pattern/AppDomainPatternConverter.cs" />
+    <!--<Compile Include="../../src/Layout/Pattern/AspNetCachePatternConverter.cs" />-->
+    <!--<Compile Include="../../src/Layout/Pattern/AspNetContextPatternConverter.cs" />-->
+    <!--<Compile Include="../../src/Layout/Pattern/AspNetPatternConverter.cs" />-->
+    <!--<Compile Include="../../src/Layout/Pattern/AspNetRequestPatternConverter.cs" />-->
+    <!--<Compile Include="../../src/Layout/Pattern/AspNetSessionPatternConverter.cs" />-->
+    <Compile Include="../../src/Layout/Pattern/DatePatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/ExceptionPatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/FileLocationPatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/FullLocationPatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/IdentityPatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/LevelPatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/LineLocationPatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/LoggerPatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/MessagePatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/MethodLocationPatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/NamedPatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/NdcPatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/PatternLayoutConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/PropertyPatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/RelativeTimePatternConverter.cs" />
+    <!--<Compile Include="../../src/Layout/Pattern/StackTraceDetailPatternConverter.cs" />-->
+    <!--<Compile Include="../../src/Layout/Pattern/StackTracePatternConverter.cs" />-->
+    <Compile Include="../../src/Layout/Pattern/ThreadPatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/TypeNamePatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/UserNamePatternConverter.cs" />
+    <Compile Include="../../src/Layout/Pattern/UtcDatePatternConverter.cs" />
+    <Compile Include="../../src/Layout/RawLayoutConverter.cs" />
+    <Compile Include="../../src/Layout/RawPropertyLayout.cs" />
+    <Compile Include="../../src/Layout/RawTimeStampLayout.cs" />
+    <Compile Include="../../src/Layout/RawUtcTimeStampLayout.cs" />
+    <Compile Include="../../src/Layout/SimpleLayout.cs" />
+    <Compile Include="../../src/Layout/XmlLayout.cs" />
+    <Compile Include="../../src/Layout/XmlLayoutBase.cs" />
+    <Compile Include="../../src/Layout/XmlLayoutSchemaLog4j.cs" />
+    <!--<Compile Include="../../src/LogicalThreadContext.cs" />-->
+    <Compile Include="../../src/LogManager.cs" />
+    <Compile Include="../../src/MDC.cs" />
+    <Compile Include="../../src/NDC.cs" />
+    <Compile Include="../../src/ObjectRenderer/DefaultRenderer.cs" />
+    <Compile Include="../../src/ObjectRenderer/IObjectRenderer.cs" />
+    <Compile Include="../../src/ObjectRenderer/RendererMap.cs" />
+    <Compile Include="../../src/Plugin/IPlugin.cs" />
+    <Compile Include="../../src/Plugin/IPluginFactory.cs" />
+    <Compile Include="../../src/Plugin/PluginCollection.cs" />
+    <Compile Include="../../src/Plugin/PluginMap.cs" />
+    <Compile Include="../../src/Plugin/PluginSkeleton.cs" />
+    <!--<Compile Include="../../src/Plugin/RemoteLoggingServerPlugin.cs" />-->
+    <Compile Include="../../src/Repository/ConfigurationChangedEventArgs.cs" />
+    <Compile Include="../../src/Repository/Hierarchy\DefaultLoggerFactory.cs" />
+    <Compile Include="../../src/Repository/Hierarchy\Hierarchy.cs" />
+    <Compile Include="../../src/Repository/Hierarchy\ILoggerFactory.cs" />
+    <Compile Include="../../src/Repository/Hierarchy\Logger.cs" />
+    <Compile Include="../../src/Repository/Hierarchy\LoggerKey.cs" />
+    <Compile Include="../../src/Repository/Hierarchy\ProvisionNode.cs" />
+    <Compile Include="../../src/Repository/Hierarchy\RootLogger.cs" />
+    <Compile Include="../../src/Repository/Hierarchy\XmlHierarchyConfigurator.cs" />
+    <Compile Include="../../src/Repository/IBasicRepositoryConfigurator.cs" />
+    <Compile Include="../../src/Repository/ILoggerRepository.cs" />
+    <Compile Include="../../src/Repository/IXmlRepositoryConfigurator.cs" />
+    <Compile Include="../../src/Repository/LoggerRepositorySkeleton.cs" />
+    <Compile Include="../../src/ThreadContext.cs" />
+    <Compile Include="../../src/Util/AppenderAttachedImpl.cs" />
+    <Compile Include="../../src/Util/CompositeProperties.cs" />
+    <Compile Include="../../src/Util/ContextPropertiesBase.cs" />
+    <Compile Include="../../src/Util/ConverterInfo.cs" />
+    <Compile Include="../../src/Util/CountingQuietTextWriter.cs" />
+    <Compile Include="../../src/Util/CyclicBuffer.cs" />
+    <Compile Include="../../src/Util/EmptyCollection.cs" />
+    <Compile Include="../../src/Util/EmptyDictionary.cs" />
+    <Compile Include="../../src/Util/FormattingInfo.cs" />
+    <Compile Include="../../src/Util/GlobalContextProperties.cs" />
+    <Compile Include="../../src/Util/ILogExtensions.cs" />
+    <Compile Include="../../src/Util/LevelMapping.cs" />
+    <Compile Include="../../src/Util/LevelMappingEntry.cs" />
+    <!--<Compile Include="../../src/Util/LogicalThreadContextProperties.cs" />-->
+    <Compile Include="../../src/Util/LogicalThreadContextStack.cs" />
+    <!--<Compile Include="../../src/Util/LogicalThreadContextStacks.cs" />-->
+    <Compile Include="../../src/Util/LogLog.cs" />
+    <!--<Compile Include="../../src/Util/NativeError.cs" />-->
+    <Compile Include="../../src/Util/NullDictionaryEnumerator.cs" />
+    <Compile Include="../../src/Util/NullEnumerator.cs" />
+    <Compile Include="../../src/Util/NullSecurityContext.cs" />
+    <Compile Include="../../src/Util/OnlyOnceErrorHandler.cs" />
+    <Compile Include="../../src/Util/OptionConverter.cs" />
+    <Compile Include="../../src/Util/PatternConverter.cs" />
+    <Compile Include="../../src/Util/PatternParser.cs" />
+    <Compile Include="../../src/Util/PatternString.cs" />
+    <Compile Include="../../src/Util/PatternStringConverters/AppDomainPatternConverter.cs" />
+    <Compile Include="../../src/Util/PatternStringConverters/DatePatternConverter.cs" />
+    <!--<Compile Include="../../src/Util/PatternStringConverters/EnvironmentFolderPathPatternConverter.cs" />-->
+    <Compile Include="../../src/Util/PatternStringConverters/EnvironmentPatternConverter.cs" />
+    <Compile Include="../../src/Util/PatternStringConverters/IdentityPatternConverter.cs" />
+    <Compile Include="../../src/Util/PatternStringConverters/LiteralPatternConverter.cs" />
+    <Compile Include="../../src/Util/PatternStringConverters/NewLinePatternConverter.cs" />
+    <Compile Include="../../src/Util/PatternStringConverters/ProcessIdPatternConverter.cs" />
+    <Compile Include="../../src/Util/PatternStringConverters/PropertyPatternConverter.cs" />
+    <Compile Include="../../src/Util/PatternStringConverters/RandomStringPatternConverter.cs" />
+    <Compile Include="../../src/Util/PatternStringConverters/UserNamePatternConverter.cs" />
+    <Compile Include="../../src/Util/PatternStringConverters/UtcDatePatternConverter.cs" />
+    <Compile Include="../../src/Util/PropertiesDictionary.cs" />
+    <Compile Include="../../src/Util/PropertyEntry.cs" />
+    <Compile Include="../../src/Util/ProtectCloseTextWriter.cs" />
+    <Compile Include="../../src/Util/QuietTextWriter.cs" />
+    <Compile Include="../../src/Util/ReaderWriterLock.cs" />
+    <Compile Include="../../src/Util/ReadOnlyPropertiesDictionary.cs" />
+    <Compile Include="../../src/Util/ReusableStringWriter.cs" />
+    <Compile Include="../../src/Util/SystemInfo.cs" />
+    <Compile Include="../../src/Util/SystemStringFormat.cs" />
+    <Compile Include="../../src/Util/TextWriterAdapter.cs" />
+    <Compile Include="../../src/Util/ThreadContextProperties.cs" />
+    <Compile Include="../../src/Util/ThreadContextStack.cs" />
+    <Compile Include="../../src/Util/ThreadContextStacks.cs" />
+    <Compile Include="../../src/Util/Transform.cs" />
+    <Compile Include="../../src/Util/TypeConverters/BooleanConverter.cs" />
+    <Compile Include="../../src/Util/TypeConverters/ConversionNotSupportedException.cs" />
+    <Compile Include="../../src/Util/TypeConverters/ConverterRegistry.cs" />
+    <Compile Include="../../src/Util/TypeConverters/EncodingConverter.cs" />
+    <Compile Include="../../src/Util/TypeConverters/IConvertFrom.cs" />
+    <Compile Include="../../src/Util/TypeConverters/IConvertTo.cs" />
+    <Compile Include="../../src/Util/TypeConverters/IPAddressConverter.cs" />
+    <Compile Include="../../src/Util/TypeConverters/PatternLayoutConverter.cs" />
+    <Compile Include="../../src/Util/TypeConverters/PatternStringConverter.cs" />
+    <Compile Include="../../src/Util/TypeConverters/TypeConverter.cs" />
+    <Compile Include="../../src/Util/TypeConverters/TypeConverterAttribute.cs" />
+    <!--<Compile Include="../../src/Util/WindowsSecurityContext.cs" />-->
+  </ItemGroup>
+  <PropertyGroup>
+    <SchemaVersion>2.0</SchemaVersion>
+  </PropertyGroup>
+  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
+</Project>
\ No newline at end of file

Propchange: logging/log4net/trunk/netstandard/log4net/log4net.xproj
------------------------------------------------------------------------------
    svn:eol-style = native

Added: logging/log4net/trunk/netstandard/log4net/project.json
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/netstandard/log4net/project.json?rev=1756257&view=auto
==============================================================================
--- logging/log4net/trunk/netstandard/log4net/project.json (added)
+++ logging/log4net/trunk/netstandard/log4net/project.json Sat Aug 13 12:47:25 2016
@@ -0,0 +1,94 @@
+{
+  "name": "log4net",
+  "version": "3.0.0",
+  "frameworks": {
+    "netstandard1.3": {
+      "buildOptions": {
+        "compile": {
+          "include": [ "*.cs", "../../src/**/*.cs" ],
+          "exclude": [
+            "../../src/Appender/AdoNetAppender.cs",
+            "../../src/Appender/AspNetTraceAppender.cs",
+            "../../src/Appender/ColoredConsoleAppender.cs",
+            "../../src/Appender/EventLogAppender.cs",
+            "../../src/Appender/NetSendAppender.cs",
+            "../../src/Appender/RemotingAppender.cs",
+            "../../src/Appender/SmtpAppender.cs",
+            "../../src/LogicalThreadContext.cs",
+            "../../src/Config/DOMConfigurator.cs",
+            "../../src/Config/DOMConfiguratorAttribute.cs",
+            "../../src/Config/Log4NetConfigurationSectionHandler.cs",
+            "../../src/Layout/Pattern/AspNetCachePatternConverter.cs",
+            "../../src/Layout/Pattern/AspNetContextPatternConverter.cs",
+            "../../src/Layout/Pattern/AspNetPatternConverter.cs",
+            "../../src/Layout/Pattern/AspNetRequestPatternConverter.cs",
+            "../../src/Layout/Pattern/AspNetSessionPatternConverter.cs",
+            "../../src/Layout/Pattern/StackTraceDetailPatternConverter.cs",
+            "../../src/Layout/Pattern/StackTracePatternConverter.cs",
+            "../../src/Plugin/RemoteLoggingServerPlugin.cs",
+            "../../src/Util/PatternStringConverters/EnvironmentFolderPathPatternConverter.cs",
+            "../../src/Util/LogicalThreadContextProperties.cs",
+            "../../src/Util/LogicalThreadContextStacks.cs",
+            "../../src/Util/NativeError.cs",
+            "../../src/Util/WindowsSecurityContext.cs"
+          ]
+        },
+        "define": [ "HAS_READERWRITERLOCKSLIM", "NETSTANDARD1_3" ]
+      },
+      "dependencies": {
+        "System.AppContext": "4.1.0",
+        "System.Collections.NonGeneric": "4.0.1",
+        "System.Console": "4.0.0",
+        "System.Diagnostics.Debug": "4.0.11",
+        "System.Diagnostics.Process": "4.1.0",
+        "System.Diagnostics.StackTrace": "4.0.1",
+        "System.Diagnostics.TraceSource": "4.0.0",
+        "System.IO.FileSystem": "4.0.1",
+        "System.IO.FileSystem.Watcher": "4.0.0",
+        "System.Linq": "4.1.0",
+        "System.Net.NameResolution": "4.0.0",
+        "System.Net.Requests": "4.0.11",
+        "System.Net.Sockets": "4.1.0",
+        "System.Reflection": "4.1.0",
+        "System.Reflection.Extensions": "4.0.1",
+        "System.Reflection.TypeExtensions": "4.1.0",
+        "System.Runtime.Extensions": "4.1.0",
+        "System.Runtime.InteropServices": "4.1.0",
+        "System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
+        "System.Runtime.Serialization.Formatters": "4.0.0-rc3-24212-01",
+        "System.Text.RegularExpressions": "4.1.0",
+        "System.Threading": "4.0.11",
+        "System.Threading.Thread": "4.0.0",
+        "System.Threading.Timer": "4.0.1",
+        "System.Xml.ReaderWriter": "4.0.11",
+        "System.Xml.XmlDocument": "4.0.1"
+      }
+    },
+    "net40": {
+      "buildOptions": {
+        "compile": "../../src/**/*.cs",
+        "define": [ "TRACE", "STRONG", "NET", "NET_2_0", "NET_4_0" ]
+      },
+      "frameworkAssemblies": {
+        "System": { "type": "build" },
+        "System.Configuration": { "type": "build" },
+        "System.Data": { "type": "build" },
+        "System.Web": { "type": "build" },
+        "System.Xml": { "type": "build" }
+      }
+    },
+    "net45": {
+      "buildOptions": {
+        "compile": "../../src/**/*.cs",
+        "define": [ "TRACE", "STRONG", "NET", "NET_2_0", "NET_4_0", "NET_4_5" ]
+      },
+      "frameworkAssemblies": {
+        "System": { "type": "build" },
+        "System.Configuration": { "type": "build" },
+        "System.Data": { "type": "build" },
+        "System.Web": { "type": "build" },
+        "System.Xml": { "type": "build" }
+      }
+    }
+  }
+}

Propchange: logging/log4net/trunk/netstandard/log4net/project.json
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: logging/log4net/trunk/src/Appender/AnsiColorTerminalAppender.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/AnsiColorTerminalAppender.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/AnsiColorTerminalAppender.cs (original)
+++ logging/log4net/trunk/src/Appender/AnsiColorTerminalAppender.cs Sat Aug 13 12:47:25 2016
@@ -252,8 +252,11 @@ namespace log4net.Appender
 			set
 			{
 				string trimmedTargetName = value.Trim();
-				
-				if (string.Compare(ConsoleError, trimmedTargetName, true, CultureInfo.InvariantCulture) == 0) 
+#if NETSTANDARD1_3
+				if (CultureInfo.InvariantCulture.CompareInfo.Compare(ConsoleError, trimmedTargetName, CompareOptions.IgnoreCase) == 0)
+#else
+				if (string.Compare(ConsoleError, trimmedTargetName, true, CultureInfo.InvariantCulture) == 0)
+#endif
 				{
 					m_writeToErrorStream = true;
 				} 

Modified: logging/log4net/trunk/src/Appender/AppenderCollection.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/AppenderCollection.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/AppenderCollection.cs (original)
+++ logging/log4net/trunk/src/Appender/AppenderCollection.cs Sat Aug 13 12:47:25 2016
@@ -26,7 +26,10 @@ namespace log4net.Appender
 	/// A strongly-typed collection of <see cref="IAppender"/> objects.
 	/// </summary>
 	/// <author>Nicko Cadell</author>
-	public class AppenderCollection : ICollection, IList, IEnumerable, ICloneable
+	public class AppenderCollection : ICollection, IList, IEnumerable
+#if !NETSTANDARD1_3
+		, ICloneable
+#endif
 	{
 		#region Interfaces
 		/// <summary>
@@ -216,10 +219,10 @@ namespace log4net.Appender
 		/// <summary>
 		/// Gets a value indicating whether access to the collection is synchronized (thread-safe).
 		/// </summary>
-		/// <returns>true if access to the ICollection is synchronized (thread-safe); otherwise, false.</returns>
+		/// <returns>false, because the backing type is an array, which is never thread-safe.</returns>
 		public virtual bool IsSynchronized
 		{
-			get { return m_array.IsSynchronized; }
+			get { return false; }
 		}
 
 		/// <summary>
@@ -227,7 +230,7 @@ namespace log4net.Appender
 		/// </summary>
 		public virtual object SyncRoot
 		{
-			get { return m_array.SyncRoot; }
+			get { return m_array; }
 		}
 
 		#endregion

Modified: logging/log4net/trunk/src/Appender/AppenderSkeleton.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/AppenderSkeleton.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/AppenderSkeleton.cs (original)
+++ logging/log4net/trunk/src/Appender/AppenderSkeleton.cs Sat Aug 13 12:47:25 2016
@@ -321,7 +321,7 @@ namespace log4net.Appender
 				{
 					ErrorHandler.Error("Failed in DoAppend", ex);
 				}
-#if !MONO && !NET_2_0
+#if !MONO && !NET_2_0 && !NETSTANDARD1_3
 				// on .NET 2.0 (and higher) and Mono (all profiles), 
 				// exceptions that do not derive from System.Exception will be
 				// wrapped in a RuntimeWrappedException by the runtime, and as
@@ -428,7 +428,7 @@ namespace log4net.Appender
 				{
 					ErrorHandler.Error("Failed in Bulk DoAppend", ex);
 				}
-#if !MONO && !NET_2_0
+#if !MONO && !NET_2_0 && !NETSTANDARD1_3
 				// on .NET 2.0 (and higher) and Mono (all profiles), 
 				// exceptions that do not derive from System.Exception will be
 				// wrapped in a RuntimeWrappedException by the runtime, and as

Modified: logging/log4net/trunk/src/Appender/ConsoleAppender.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/ConsoleAppender.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/ConsoleAppender.cs (original)
+++ logging/log4net/trunk/src/Appender/ConsoleAppender.cs Sat Aug 13 12:47:25 2016
@@ -120,8 +120,11 @@ namespace log4net.Appender
 			set
 			{
 				string v = value.Trim();
-				
-				if (string.Compare(ConsoleError, v, true, CultureInfo.InvariantCulture) == 0) 
+#if NETSTANDARD1_3
+				if (CultureInfo.InvariantCulture.CompareInfo.Compare(ConsoleError, v, CompareOptions.IgnoreCase) == 0)
+#else
+				if (string.Compare(ConsoleError, v, true, CultureInfo.InvariantCulture) == 0)
+#endif
 				{
 					m_writeToErrorStream = true;
 				} 

Modified: logging/log4net/trunk/src/Appender/DebugAppender.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/DebugAppender.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/DebugAppender.cs (original)
+++ logging/log4net/trunk/src/Appender/DebugAppender.cs Sat Aug 13 12:47:25 2016
@@ -121,7 +121,7 @@ namespace log4net.Appender
 			// Write the string to the Debug system
 			//
 			System.Diagnostics.Debug.Write(RenderLoggingEvent(loggingEvent), loggingEvent.LoggerName);
-	 
+#if !NETSTANDARD1_3
 			//
 			// Flush the Debug system if needed
 			//
@@ -129,6 +129,7 @@ namespace log4net.Appender
 			{
 				System.Diagnostics.Debug.Flush();
 			} 
+#endif
 		}
 
 		/// <summary>

Modified: logging/log4net/trunk/src/Appender/LocalSyslogAppender.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/LocalSyslogAppender.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/LocalSyslogAppender.cs (original)
+++ logging/log4net/trunk/src/Appender/LocalSyslogAppender.cs Sat Aug 13 12:47:25 2016
@@ -337,7 +337,7 @@ namespace log4net.Appender
 		/// <see cref="ActivateOptions"/> must be called again.
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
         [System.Security.SecuritySafeCritical]
 #endif
         public override void ActivateOptions()
@@ -378,10 +378,12 @@ namespace log4net.Appender
 		/// The format of the output will depend on the appender's layout.
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
         [System.Security.SecuritySafeCritical]
 #endif
+#if !NETSTANDARD1_3
         [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
+#endif
         protected override void Append(LoggingEvent loggingEvent) 
 		{
 			int priority = GeneratePriority(m_facility, GetSeverity(loggingEvent.Level));
@@ -400,7 +402,7 @@ namespace log4net.Appender
 		/// Close the syslog when the appender is closed
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
         [System.Security.SecuritySafeCritical]
 #endif
         protected override void OnClose()

Modified: logging/log4net/trunk/src/Appender/ManagedColoredConsoleAppender.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/ManagedColoredConsoleAppender.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/ManagedColoredConsoleAppender.cs (original)
+++ logging/log4net/trunk/src/Appender/ManagedColoredConsoleAppender.cs Sat Aug 13 12:47:25 2016
@@ -134,8 +134,12 @@ namespace log4net.Appender
 			set
 			{
 				string v = value.Trim();
-				
-				if (string.Compare(ConsoleError, v, true, CultureInfo.InvariantCulture) == 0) 
+
+#if NETSTANDARD1_3
+                if (CultureInfo.InvariantCulture.CompareInfo.Compare(ConsoleError, v, CompareOptions.IgnoreCase) == 0)
+#else
+                if (string.Compare(ConsoleError, v, true, CultureInfo.InvariantCulture) == 0) 
+#endif
 				{
 					m_writeToErrorStream = true;
 				} 

Modified: logging/log4net/trunk/src/Appender/NetSendAppender.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/NetSendAppender.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/NetSendAppender.cs (original)
+++ logging/log4net/trunk/src/Appender/NetSendAppender.cs Sat Aug 13 12:47:25 2016
@@ -304,10 +304,12 @@ namespace log4net.Appender
 		/// Sends the event using a network message.
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
         [System.Security.SecuritySafeCritical]
 #endif
+#if !NETSTANDARD1_3
         [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
+#endif
         protected override void Append(LoggingEvent loggingEvent) 
 		{
 			NativeError nativeError = null;

Modified: logging/log4net/trunk/src/Appender/OutputDebugStringAppender.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/OutputDebugStringAppender.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/OutputDebugStringAppender.cs (original)
+++ logging/log4net/trunk/src/Appender/OutputDebugStringAppender.cs Sat Aug 13 12:47:25 2016
@@ -75,13 +75,20 @@ namespace log4net.Appender
 		/// Write the logging event to the output debug string API
 		/// </para>
 		/// </remarks>
-#if NET_4_0 || MONO_4_0
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
         [System.Security.SecuritySafeCritical]
 #elif !NETCF
         [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, UnmanagedCode = true)]
 #endif
         override protected void Append(LoggingEvent loggingEvent) 
 		{
+#if NETSTANDARD1_3
+			if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+			{
+				throw new System.PlatformNotSupportedException("OutputDebugString is only available on Windows");
+			}
+#endif
+
 			OutputDebugString(RenderLoggingEvent(loggingEvent));
 		} 
 

Modified: logging/log4net/trunk/src/Appender/RemoteSyslogAppender.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/RemoteSyslogAppender.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/RemoteSyslogAppender.cs (original)
+++ logging/log4net/trunk/src/Appender/RemoteSyslogAppender.cs Sat Aug 13 12:47:25 2016
@@ -409,7 +409,11 @@ namespace log4net.Appender
                     // Grab as a byte array
                     buffer = this.Encoding.GetBytes(builder.ToString());
 
+#if NETSTANDARD1_3
+                    Client.SendAsync(buffer, buffer.Length, RemoteEndPoint).Wait();
+#else
                     this.Client.Send(buffer, buffer.Length, this.RemoteEndPoint);
+#endif
                 }
             }
             catch (Exception e)

Modified: logging/log4net/trunk/src/Appender/TelnetAppender.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/TelnetAppender.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/TelnetAppender.cs (original)
+++ logging/log4net/trunk/src/Appender/TelnetAppender.cs Sat Aug 13 12:47:25 2016
@@ -25,7 +25,9 @@ using System.Net.Sockets;
 using System.Text;
 using System.IO;
 using System.Threading;
-
+#if NETSTANDARD1_3
+using System.Threading.Tasks;
+#endif
 using log4net.Layout;
 using log4net.Core;
 using log4net.Util;
@@ -336,8 +338,17 @@ namespace log4net.Appender
 				m_serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
 
 				m_serverSocket.Bind(new IPEndPoint(IPAddress.Any, port));
-				m_serverSocket.Listen(5);	
+				m_serverSocket.Listen(5);
+				AcceptConnection();
+			}
+
+			private void AcceptConnection()
+			{
+#if NETSTANDARD1_3
+				m_serverSocket.AcceptAsync().ContinueWith(OnConnect, TaskScheduler.Default);
+#else
 				m_serverSocket.BeginAccept(new AsyncCallback(OnConnect), null);
+#endif
 			}
 
 			/// <summary>
@@ -419,6 +430,10 @@ namespace log4net.Appender
 				}
 			}
 			
+
+#if NETSTANDARD1_3
+			private void OnConnect(Task<Socket> acceptTask)
+#else
 			/// <summary>
 			/// Callback used to accept a connection on the server socket
 			/// </summary>
@@ -430,12 +445,16 @@ namespace log4net.Appender
 			/// </para>
 			/// </remarks>
 			private void OnConnect(IAsyncResult asyncResult)
+#endif
 			{
 				try
 				{
+#if NETSTANDARD1_3
+					Socket socket = acceptTask.GetAwaiter().GetResult();
+#else
 					// Block until a client connects
 					Socket socket = m_serverSocket.EndAccept(asyncResult);
-
+#endif
 					LogLog.Debug(declaringType, "Accepting connection from ["+socket.RemoteEndPoint.ToString()+"]");
 					SocketClient client = new SocketClient(socket);
 
@@ -465,7 +484,7 @@ namespace log4net.Appender
 				{
 					if (m_serverSocket != null)
 					{
-						m_serverSocket.BeginAccept(new AsyncCallback(OnConnect), null);
+						AcceptConnection();
 					}
 				}
 			}

Modified: logging/log4net/trunk/src/Appender/UdpAppender.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/UdpAppender.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/UdpAppender.cs (original)
+++ logging/log4net/trunk/src/Appender/UdpAppender.cs Sat Aug 13 12:47:25 2016
@@ -403,7 +403,11 @@ namespace log4net.Appender
 			try 
 			{
 				Byte [] buffer = m_encoding.GetBytes(RenderLoggingEvent(loggingEvent).ToCharArray());
+#if NETSTANDARD1_3
+				Client.SendAsync(buffer, buffer.Length, RemoteEndPoint).Wait();
+#else
 				this.Client.Send(buffer, buffer.Length, this.RemoteEndPoint);
+#endif
 			} 
 			catch (Exception ex) 
 			{
@@ -536,7 +540,11 @@ namespace log4net.Appender
 		/// <summary>
 		/// The encoding to use for the packet.
 		/// </summary>
+#if NETSTANDARD1_3
+		private Encoding m_encoding = Encoding.Unicode;
+#else
 		private Encoding m_encoding = Encoding.Default;
+#endif
 
 		#endregion Private Instance Fields
 	}

Modified: logging/log4net/trunk/src/AssemblyInfo.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/AssemblyInfo.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/AssemblyInfo.cs (original)
+++ logging/log4net/trunk/src/AssemblyInfo.cs Sat Aug 13 12:47:25 2016
@@ -91,6 +91,8 @@ using System.Runtime.CompilerServices;
 [assembly: AssemblyTitle("Apache log4net for CLI Compatible Frameworks")]
 #elif (NET)
 [assembly: AssemblyTitle("Apache log4net for .NET Framework")]
+#elif (NETSTANDARD1_3)
+[assembly: AssemblyTitle("Apache log4net for .NET Core")]
 #elif (NETCF)
 [assembly: AssemblyTitle("Apache log4net for .NET Compact Framework")]
 #elif (MONO)

Modified: logging/log4net/trunk/src/Config/BasicConfigurator.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Config/BasicConfigurator.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Config/BasicConfigurator.cs (original)
+++ logging/log4net/trunk/src/Config/BasicConfigurator.cs Sat Aug 13 12:47:25 2016
@@ -82,6 +82,7 @@ namespace log4net.Config
 
 		#region Public Static Methods
 
+#if !NETSTANDARD1_3
 		/// <summary>
 		/// Initializes the log4net system with a default configuration.
 		/// </summary>
@@ -96,22 +97,8 @@ namespace log4net.Config
 		/// </remarks>
         static public ICollection Configure()
 		{
-		    return BasicConfigurator.Configure(LogManager.GetRepository(Assembly.GetCallingAssembly()));
-		}
-
-	    /// <summary>
-		/// Initializes the log4net system using the specified appender.
-		/// </summary>
-		/// <param name="appender">The appender to use to log all logging events.</param>
-		/// <remarks>
-		/// <para>
-		/// Initializes the log4net system using the specified appender.
-		/// </para>
-		/// </remarks>
-		static public ICollection Configure(IAppender appender) 
-		{
-            return Configure(new IAppender[] { appender });
-		}
+            return BasicConfigurator.Configure(LogManager.GetRepository(Assembly.GetCallingAssembly()));
+        }
 
         /// <summary>
         /// Initializes the log4net system using the specified appenders.
@@ -138,6 +125,21 @@ namespace log4net.Config
             return configurationMessages;
         }
 
+	    /// <summary>
+		/// Initializes the log4net system using the specified appender.
+		/// </summary>
+		/// <param name="appender">The appender to use to log all logging events.</param>
+		/// <remarks>
+		/// <para>
+		/// Initializes the log4net system using the specified appender.
+		/// </para>
+		/// </remarks>
+		static public ICollection Configure(IAppender appender) 
+		{
+            return Configure(new IAppender[] { appender });
+		}
+#endif // !NETSTANDARD1_3
+
 		/// <summary>
 		/// Initializes the <see cref="ILoggerRepository"/> with a default configuration.
 		/// </summary>

Modified: logging/log4net/trunk/src/Config/PluginAttribute.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Config/PluginAttribute.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Config/PluginAttribute.cs (original)
+++ logging/log4net/trunk/src/Config/PluginAttribute.cs Sat Aug 13 12:47:25 2016
@@ -49,6 +49,7 @@ namespace log4net.Config
 	{
 		#region Public Instance Constructors
 
+#if !NETSTANDARD1_3 // Excluded because GetCallingAssembly() is not available in CoreFX (https://github.com/dotnet/corefx/issues/2221).
 		/// <summary>
 		/// Initializes a new instance of the <see cref="PluginAttribute" /> class
 		/// with the specified type.
@@ -66,6 +67,7 @@ namespace log4net.Config
 		{
 			m_typeName = typeName;
 		}
+#endif
 
 		/// <summary>
 		/// Initializes a new instance of the <see cref="PluginAttribute" /> class
@@ -140,12 +142,13 @@ namespace log4net.Config
 		public IPlugin CreatePlugin()
 		{
 			Type pluginType = m_type;
+#if !NETSTANDARD1_3
 			if (m_type == null)
 			{
 				// Get the plugin object type from the string type name
 				pluginType = SystemInfo.GetTypeFromString(m_typeName, true, true);
 			}
-
+#endif
 			// Check that the type is a plugin
 			if (!(typeof(IPlugin).IsAssignableFrom(pluginType)))
 			{

Modified: logging/log4net/trunk/src/Config/XmlConfigurator.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Config/XmlConfigurator.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Config/XmlConfigurator.cs (original)
+++ logging/log4net/trunk/src/Config/XmlConfigurator.cs Sat Aug 13 12:47:25 2016
@@ -57,47 +57,6 @@ namespace log4net.Config
 		#region Configure static methods
 
 #if !NETCF
-		/// <summary>
-		/// Automatically configures the log4net system based on the 
-		/// application's configuration settings.
-		/// </summary>
-		/// <remarks>
-		/// <para>
-		/// Each application has a configuration file. This has the
-		/// same name as the application with '.config' appended.
-		/// This file is XML and calling this function prompts the
-		/// configurator to look in that file for a section called
-		/// <c>log4net</c> that contains the configuration data.
-		/// </para>
-		/// <para>
-		/// To use this method to configure log4net you must specify 
-		/// the <see cref="Log4NetConfigurationSectionHandler"/> section
-		/// handler for the <c>log4net</c> configuration section. See the
-		/// <see cref="Log4NetConfigurationSectionHandler"/> for an example.
-		/// </para>
-		/// </remarks>
-		/// <seealso cref="Log4NetConfigurationSectionHandler"/>
-#else
-		/// <summary>
-		/// Automatically configures the log4net system based on the 
-		/// application's configuration settings.
-		/// </summary>
-		/// <remarks>
-		/// <para>
-		/// Each application has a configuration file. This has the
-		/// same name as the application with '.config' appended.
-		/// This file is XML and calling this function prompts the
-		/// configurator to look in that file for a section called
-		/// <c>log4net</c> that contains the configuration data.
-		/// </para>
-		/// </remarks>
-#endif
-        static public ICollection Configure()
-        {
-            return Configure(LogManager.GetRepository(Assembly.GetCallingAssembly()));
-        }
-
-#if !NETCF
         /// <summary>
         /// Automatically configures the <see cref="ILoggerRepository"/> using settings
         /// stored in the application's configuration file.
@@ -162,7 +121,7 @@ namespace log4net.Config
 				LogLog.Debug(declaringType, "Application config file location unknown");
 			}
 
-#if NETCF
+#if NETCF || NETSTANDARD1_3
 			// No config file reading stuff. Just go straight for the file
 			Configure(repository, new FileInfo(SystemInfo.ConfigurationFileLocation));
 #else
@@ -202,50 +161,66 @@ namespace log4net.Config
 #endif
 		}
 
+#if !NETSTANDARD1_3 // Excluded because GetCallingAssembly() is not available in CoreFX (https://github.com/dotnet/corefx/issues/2221).
+#if !NETCF
 		/// <summary>
-		/// Configures log4net using a <c>log4net</c> element
+		/// Automatically configures the log4net system based on the 
+		/// application's configuration settings.
 		/// </summary>
 		/// <remarks>
 		/// <para>
-		/// Loads the log4net configuration from the XML element
-		/// supplied as <paramref name="element"/>.
+		/// Each application has a configuration file. This has the
+		/// same name as the application with '.config' appended.
+		/// This file is XML and calling this function prompts the
+		/// configurator to look in that file for a section called
+		/// <c>log4net</c> that contains the configuration data.
+		/// </para>
+		/// <para>
+		/// To use this method to configure log4net you must specify 
+		/// the <see cref="Log4NetConfigurationSectionHandler"/> section
+		/// handler for the <c>log4net</c> configuration section. See the
+		/// <see cref="Log4NetConfigurationSectionHandler"/> for an example.
 		/// </para>
 		/// </remarks>
-		/// <param name="element">The element to parse.</param>
-		static public ICollection Configure(XmlElement element) 
-		{
-            ArrayList configurationMessages = new ArrayList();
-
-            ILoggerRepository repository = LogManager.GetRepository(Assembly.GetCallingAssembly());
-
-            using (new LogLog.LogReceivedAdapter(configurationMessages))
-            {
-                InternalConfigureFromXml(repository, element);
-            }
-
-            repository.ConfigurationMessages = configurationMessages;
-
-            return configurationMessages;
-		}
+		/// <seealso cref="Log4NetConfigurationSectionHandler"/>
+#else
+		/// <summary>
+		/// Automatically configures the log4net system based on the 
+		/// application's configuration settings.
+		/// </summary>
+		/// <remarks>
+		/// <para>
+		/// Each application has a configuration file. This has the
+		/// same name as the application with '.config' appended.
+		/// This file is XML and calling this function prompts the
+		/// configurator to look in that file for a section called
+		/// <c>log4net</c> that contains the configuration data.
+		/// </para>
+		/// </remarks>
+#endif
+        static public ICollection Configure()
+        {
+            return Configure(LogManager.GetRepository(Assembly.GetCallingAssembly()));
+        }
 
 		/// <summary>
-		/// Configures the <see cref="ILoggerRepository"/> using the specified XML 
-		/// element.
+		/// Configures log4net using a <c>log4net</c> element
 		/// </summary>
 		/// <remarks>
+		/// <para>
 		/// Loads the log4net configuration from the XML element
 		/// supplied as <paramref name="element"/>.
+		/// </para>
 		/// </remarks>
-		/// <param name="repository">The repository to configure.</param>
 		/// <param name="element">The element to parse.</param>
-		static public ICollection Configure(ILoggerRepository repository, XmlElement element) 
+		static public ICollection Configure(XmlElement element) 
 		{
             ArrayList configurationMessages = new ArrayList();
 
+            ILoggerRepository repository = LogManager.GetRepository(Assembly.GetCallingAssembly());
+
             using (new LogLog.LogReceivedAdapter(configurationMessages))
             {
-                LogLog.Debug(declaringType, "configuring repository [" + repository.Name + "] using XML element");
-
                 InternalConfigureFromXml(repository, element);
             }
 
@@ -372,7 +347,6 @@ namespace log4net.Config
             ArrayList configurationMessages = new ArrayList();
 
             ILoggerRepository repository = LogManager.GetRepository(Assembly.GetCallingAssembly());
-
             using (new LogLog.LogReceivedAdapter(configurationMessages))
             {
                 InternalConfigure(repository, configUri);
@@ -402,7 +376,6 @@ namespace log4net.Config
             ArrayList configurationMessages = new ArrayList();
 
             ILoggerRepository repository = LogManager.GetRepository(Assembly.GetCallingAssembly());
-
             using (new LogLog.LogReceivedAdapter(configurationMessages))
             {
                 InternalConfigure(repository, configStream);
@@ -412,9 +385,35 @@ namespace log4net.Config
 
             return configurationMessages;
 		}
+#endif // !NETSTANDARD1_3
 
-#if !NETCF
+        /// <summary>
+        /// Configures the <see cref="ILoggerRepository"/> using the specified XML 
+        /// element.
+        /// </summary>
+        /// <remarks>
+        /// Loads the log4net configuration from the XML element
+        /// supplied as <paramref name="element"/>.
+        /// </remarks>
+        /// <param name="repository">The repository to configure.</param>
+        /// <param name="element">The element to parse.</param>
+        static public ICollection Configure(ILoggerRepository repository, XmlElement element)
+        {
+            ArrayList configurationMessages = new ArrayList();
 
+            using (new LogLog.LogReceivedAdapter(configurationMessages))
+            {
+                LogLog.Debug(declaringType, "configuring repository [" + repository.Name + "] using XML element");
+
+                InternalConfigureFromXml(repository, element);
+            }
+
+            repository.ConfigurationMessages = configurationMessages;
+
+            return configurationMessages;
+        }
+
+#if !NETCF
         /// <summary>
         /// Configures the <see cref="ILoggerRepository"/> using the specified configuration 
         /// file.
@@ -652,7 +651,11 @@ namespace log4net.Config
 #endif
 						try
 						{
+#if NETSTANDARD1_3
+							WebResponse response = configRequest.GetResponseAsync().GetAwaiter().GetResult();
+#else
 							WebResponse response = configRequest.GetResponse();
+#endif
 							if (response != null)
 							{
 								try
@@ -725,12 +728,14 @@ namespace log4net.Config
 #if (NETCF)
 					// Create a text reader for the file stream
 					XmlTextReader xmlReader = new XmlTextReader(configStream);
-#elif NET_2_0
+#elif NET_2_0 || NETSTANDARD1_3
 					// Allow the DTD to specify entity includes
 					XmlReaderSettings settings = new XmlReaderSettings();
                                         // .NET 4.0 warning CS0618: 'System.Xml.XmlReaderSettings.ProhibitDtd'
                                         // is obsolete: 'Use XmlReaderSettings.DtdProcessing property instead.'
-#if !NET_4_0 && !MONO_4_0
+#if NETSTANDARD1_3 // TODO DtdProcessing.Parse not yet available (https://github.com/dotnet/corefx/issues/4376)
+					settings.DtdProcessing = DtdProcessing.Ignore;
+#elif !NET_4_0 && !MONO_4_0
 					settings.ProhibitDtd = false;
 #else
 					settings.DtdProcessing = DtdProcessing.Parse;
@@ -786,7 +791,7 @@ namespace log4net.Config
 		#region ConfigureAndWatch static methods
 
 #if (!NETCF && !SSCLI)
-
+#if !NETSTANDARD1_3 // Excluded because GetCallingAssembly() is not available in CoreFX (https://github.com/dotnet/corefx/issues/2221).
 		/// <summary>
 		/// Configures log4net using the file specified, monitors the file for changes 
 		/// and reloads the configuration if a change is detected.
@@ -823,6 +828,7 @@ namespace log4net.Config
 
             return configurationMessages;
 		}
+#endif // !NETSTANDARD1_3
 
         /// <summary>
         /// Configures the <see cref="ILoggerRepository"/> using the file specified, 
@@ -963,7 +969,7 @@ namespace log4net.Config
 			/// Initializes a new instance of the <see cref="ConfigureAndWatchHandler" /> class.
 			/// </para>
 			/// </remarks>
-#if NET_4_0 || MONO_4_0
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
             [System.Security.SecuritySafeCritical]
 #endif
             public ConfigureAndWatchHandler(ILoggerRepository repository, FileInfo configFile)
@@ -1043,7 +1049,7 @@ namespace log4net.Config
             /// <summary>
             /// Release the handles held by the watcher and timer.
             /// </summary>
-#if NET_4_0 || MONO_4_0
+#if NET_4_0 || MONO_4_0 || NETSTANDARD1_3
             [System.Security.SecuritySafeCritical]
 #endif
             public void Dispose()

Modified: logging/log4net/trunk/src/Core/DefaultRepositorySelector.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Core/DefaultRepositorySelector.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Core/DefaultRepositorySelector.cs (original)
+++ logging/log4net/trunk/src/Core/DefaultRepositorySelector.cs Sat Aug 13 12:47:25 2016
@@ -23,7 +23,11 @@
 
 using System;
 using System.Collections;
+#if !NETSTANDARD1_3
 using System.Configuration;
+#else
+using System.Linq;
+#endif
 using System.IO;
 using System.Reflection;
 
@@ -583,7 +587,11 @@ namespace log4net.Core
 			try
 			{
 				// Look for the RepositoryAttribute on the assembly 
+#if NETSTANDARD1_3
+				object[] repositoryAttributes = assembly.GetCustomAttributes(typeof(log4net.Config.RepositoryAttribute)).ToArray();
+#else
 				object[] repositoryAttributes = Attribute.GetCustomAttributes(assembly, typeof(log4net.Config.RepositoryAttribute), false);
+#endif
 				if (repositoryAttributes == null || repositoryAttributes.Length == 0)
 				{
 					// This is not a problem, but its nice to know what is going on.
@@ -655,7 +663,11 @@ namespace log4net.Core
 			}
 
 			// Look for the Configurator attributes (e.g. XmlConfiguratorAttribute) on the assembly
+#if NETSTANDARD1_3
+			object[] configAttributes = assembly.GetCustomAttributes(typeof(log4net.Config.ConfiguratorAttribute)).ToArray();
+#else
 			object[] configAttributes = Attribute.GetCustomAttributes(assembly, typeof(log4net.Config.ConfiguratorAttribute), false);
+#endif
 			if (configAttributes != null && configAttributes.Length > 0)
 			{
 				// Sort the ConfiguratorAttributes in priority order
@@ -705,7 +717,7 @@ namespace log4net.Core
 
                     // Determine whether to watch the file or not based on an app setting value:
 				    bool watchRepositoryConfigFile = false;
-#if NET_2_0 || MONO_2_0 || MONO_3_5 || MONO_4_0
+#if NET_2_0 || MONO_2_0 || MONO_3_5 || MONO_4_0 || NETSTANDARD1_3
 				    Boolean.TryParse(SystemInfo.GetAppSetting("log4net.Config.Watch"), out watchRepositoryConfigFile);
 #else
                                     {
@@ -803,7 +815,11 @@ namespace log4net.Core
 			}
 
 			// Look for the PluginAttribute on the assembly
+#if NETSTANDARD1_3
+			object[] configAttributes = assembly.GetCustomAttributes(typeof(log4net.Config.PluginAttribute)).ToArray();
+#else
 			object[] configAttributes = Attribute.GetCustomAttributes(assembly, typeof(log4net.Config.PluginAttribute), false);
+#endif
 			if (configAttributes != null && configAttributes.Length > 0)
 			{
 				foreach(log4net.Plugin.IPluginFactory configAttr in configAttributes)
@@ -843,7 +859,11 @@ namespace log4net.Core
 			}
 
 			// Look for the AliasRepositoryAttribute on the assembly
+#if NETSTANDARD1_3
+			object[] configAttributes = assembly.GetCustomAttributes(typeof(log4net.Config.AliasRepositoryAttribute)).ToArray();
+#else
 			object[] configAttributes = Attribute.GetCustomAttributes(assembly, typeof(log4net.Config.AliasRepositoryAttribute), false);
+#endif
 			if (configAttributes != null && configAttributes.Length > 0)
 			{
 				foreach(log4net.Config.AliasRepositoryAttribute configAttr in configAttributes)

Modified: logging/log4net/trunk/src/Core/ExceptionEvaluator.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Core/ExceptionEvaluator.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Core/ExceptionEvaluator.cs (original)
+++ logging/log4net/trunk/src/Core/ExceptionEvaluator.cs Sat Aug 13 12:47:25 2016
@@ -18,6 +18,9 @@
 #endregion
 
 using System;
+#if NETSTANDARD1_3
+using System.Reflection;
+#endif
 
 namespace log4net.Core
 {

Modified: logging/log4net/trunk/src/Core/Level.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Core/Level.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Core/Level.cs (original)
+++ logging/log4net/trunk/src/Core/Level.cs Sat Aug 13 12:47:25 2016
@@ -111,7 +111,11 @@ namespace log4net.Core
 			}
 
 			m_levelValue = level;
+#if NETSTANDARD1_3
+			m_levelName = levelName;
+#else
 			m_levelName = string.Intern(levelName);
+#endif
 			m_levelDisplayName = displayName;
 		}
 

Modified: logging/log4net/trunk/src/Core/LevelCollection.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Core/LevelCollection.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Core/LevelCollection.cs (original)
+++ logging/log4net/trunk/src/Core/LevelCollection.cs Sat Aug 13 12:47:25 2016
@@ -26,7 +26,10 @@ namespace log4net.Core
 	/// A strongly-typed collection of <see cref="Level"/> objects.
 	/// </summary>
 	/// <author>Nicko Cadell</author>
-	public class LevelCollection : ICollection, IList, IEnumerable, ICloneable
+	public class LevelCollection : ICollection, IList, IEnumerable
+#if !NETSTANDARD1_3
+		, ICloneable
+#endif
 	{
 		#region Interfaces
 
@@ -205,10 +208,10 @@ namespace log4net.Core
 		/// <summary>
 		/// Gets a value indicating whether access to the collection is synchronized (thread-safe).
 		/// </summary>
-		/// <value>true if access to the ICollection is synchronized (thread-safe); otherwise, false.</value>
+		/// <returns>false, because the backing type is an array, which is never thread-safe.</returns>
 		public virtual bool IsSynchronized
 		{
-			get { return m_array.IsSynchronized; }
+			get { return false; }
 		}
 
 		/// <summary>
@@ -216,7 +219,7 @@ namespace log4net.Core
 		/// </summary>
 		public virtual object SyncRoot
 		{
-			get { return m_array.SyncRoot; }
+			get { return m_array; }
 		}
 
 		#endregion

Modified: logging/log4net/trunk/src/Core/LocationInfo.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Core/LocationInfo.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Core/LocationInfo.cs (original)
+++ logging/log4net/trunk/src/Core/LocationInfo.cs Sat Aug 13 12:47:25 2016
@@ -83,7 +83,7 @@ namespace log4net.Core
 			m_methodName = NA;
 			m_fullInfo = NA;
 
-#if !NETCF
+#if !(NETCF || NETSTANDARD1_3) // StackTrace isn't fully implemented for NETSTANDARD1_3 https://github.com/dotnet/corefx/issues/1797
 			if (callerStackBoundaryDeclaringType != null)
 			{
 				try
@@ -271,7 +271,7 @@ namespace log4net.Core
 			get { return m_fullInfo; }
 		}
 		
-#if !NETCF
+#if !(NETCF || NETSTANDARD1_3)
 		/// <summary>
 		/// Gets the stack frames from the stack trace of the caller making the log request
 		/// </summary>
@@ -290,7 +290,7 @@ namespace log4net.Core
 		private readonly string m_lineNumber;
 		private readonly string m_methodName;
 		private readonly string m_fullInfo;
-#if !NETCF
+#if !(NETCF || NETSTANDARD1_3)
 		private readonly StackFrameItem[] m_stackFrames;
 #endif
 

Modified: logging/log4net/trunk/src/Core/LogException.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Core/LogException.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Core/LogException.cs (original)
+++ logging/log4net/trunk/src/Core/LogException.cs Sat Aug 13 12:47:25 2016
@@ -39,7 +39,11 @@ namespace log4net.Core
 #if !NETCF
 	[Serializable]
 #endif
+#if NETSTANDARD1_3
+	public class LogException : Exception
+#else
 	public class LogException : ApplicationException 
+#endif
 	{
 		#region Public Instance Constructors
 
@@ -88,7 +92,7 @@ namespace log4net.Core
 
 		#region Protected Instance Constructors
 
-#if !NETCF
+#if !(NETCF || NETSTANDARD1_3)
 		/// <summary>
 		/// Serialization constructor
 		/// </summary>

Modified: logging/log4net/trunk/src/Core/LoggerManager.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Core/LoggerManager.cs?rev=1756257&r1=1756256&r2=1756257&view=diff
==============================================================================
--- logging/log4net/trunk/src/Core/LoggerManager.cs (original)
+++ logging/log4net/trunk/src/Core/LoggerManager.cs Sat Aug 13 12:47:25 2016
@@ -18,7 +18,11 @@
 #endregion
 
 using System;
+#if NETSTANDARD1_3
+using System.Runtime.InteropServices;
+#else
 using System.Configuration;
+#endif
 using System.Reflection;
 
 using log4net.Util;
@@ -100,8 +104,8 @@ namespace log4net.Core
 			// Set the default repository selector
 #if NETCF
 			s_repositorySelector = new CompactRepositorySelector(typeof(log4net.Repository.Hierarchy.Hierarchy));
-#else
-
+			return;
+#elif !NETSTANDARD1_3
 			// Look for the RepositorySelector type specified in the AppSettings 'log4net.RepositorySelector'
 			string appRepositorySelectorTypeName = SystemInfo.GetAppSetting("log4net.RepositorySelector");
 			if (appRepositorySelectorTypeName != null && appRepositorySelectorTypeName.Length > 0)
@@ -140,13 +144,12 @@ namespace log4net.Core
 					}
 				}
 			}
-
+#endif
 			// Create the DefaultRepositorySelector if not configured above 
 			if (s_repositorySelector == null)
 			{
 				s_repositorySelector = new DefaultRepositorySelector(typeof(log4net.Repository.Hierarchy.Hierarchy));
 			}
-#endif
 		}
 
 		/// <summary>
@@ -163,7 +166,7 @@ namespace log4net.Core
 		/// </remarks>
 		private static void RegisterAppDomainEvents()
 		{
-#if !NETCF
+#if !(NETCF || NETSTANDARD1_3)
 			// ProcessExit seems to be fired if we are part of the default domain
 			AppDomain.CurrentDomain.ProcessExit += new EventHandler(OnProcessExit);
 
@@ -798,17 +801,21 @@ namespace log4net.Core
 		{
 			System.Text.StringBuilder sb = new System.Text.StringBuilder();
 
-			// Grab the currently executing assembly
+#if NETSTANDARD1_3
+			Assembly myAssembly = typeof(LoggerManager).GetTypeInfo().Assembly;
+			sb.Append($"log4net assembly [{myAssembly.FullName}]. ");
+			//sb.Append($"Loaded from [{myAssembly.Location}]. "); // TODO Assembly.Location available in netstandard1.5
+			sb.Append($"(.NET Framework [{RuntimeInformation.FrameworkDescription}] on {RuntimeInformation.OSDescription}");
+#else
 			Assembly myAssembly = Assembly.GetExecutingAssembly();
-
-			// Build Up message
 			sb.Append("log4net assembly [").Append(myAssembly.FullName).Append("]. ");
 			sb.Append("Loaded from [").Append(SystemInfo.AssemblyLocationInfo(myAssembly)).Append("]. ");
 			sb.Append("(.NET Runtime [").Append(Environment.Version.ToString()).Append("]");
 #if (!SSCLI)
             sb.Append(" on ").Append(Environment.OSVersion.ToString());
 #endif
-            sb.Append(")");
+#endif // NETSTANDARD1_3
+			sb.Append(")");
 			return sb.ToString();
 		}