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();
}